1.如何使rectangle显示边界,最好是用虚线显示
2.现有如下代码:
Graphics g = this.CreateGraphics();
Rectangle rec1 = new Rectangle(10, 10, 50, 50);
Rectangle rec2 = new Rectangle(80, 80, 50, 50);
g.FillRectangle(new SolidBrush( //某种未知Color), rec1);
如果要使把rec2用与rec1相同的颜色画出来,应该怎么做?或者说有没有什么办法获取rec1的颜色?
3.仍为上述代码,用new申请的内存是否需要释放?如何释放?
9 个解决方案
#1
3.不必释放。GC会自动处理。
#2
哦~第三题明白了,前两道呢?尤其是第二道,怎么查也没查到,大家帮帮忙啊,谢啦~~~
#3
1.可以先画个矩形,再Fill
2.
Graphics g = this.CreateGraphics();
Rectangle rec1 = new Rectangle(10, 10, 50, 50);
Rectangle rec2 = new Rectangle(80, 80, 50, 50);
SolidBrush brush = new SolidBrush(//某种未知Color);
g.FillRectangle(brush, rec1);
g.FillRectangle(brush,rec2);
3.用Dispose()方法释放
2.
Graphics g = this.CreateGraphics();
Rectangle rec1 = new Rectangle(10, 10, 50, 50);
Rectangle rec2 = new Rectangle(80, 80, 50, 50);
SolidBrush brush = new SolidBrush(//某种未知Color);
g.FillRectangle(brush, rec1);
g.FillRectangle(brush,rec2);
3.用Dispose()方法释放
#4
1 虚线不是Rectangle定义的 是PEN里的
Pen _Pen = new Pen(Color.Red, 1);
_Pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
_Graphics.DrawRectangle(_Pen, new Rectangle(0, 0, _Control.Width-1, _Control.Height-1));
2 Rectangle不需要释放 _Graphics需要释放
3 你可以获取哪个某种未知COLOR 那你在new SolidBrush
g.FillRectangle(new SolidBrush(//某种未知Color), rec2);
Pen _Pen = new Pen(Color.Red, 1);
_Pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
_Graphics.DrawRectangle(_Pen, new Rectangle(0, 0, _Control.Width-1, _Control.Height-1));
2 Rectangle不需要释放 _Graphics需要释放
3 你可以获取哪个某种未知COLOR 那你在new SolidBrush
g.FillRectangle(new SolidBrush(//某种未知Color), rec2);
#5
看来我没说清楚,哦……其实是这样的:
我在写一个俄罗斯方块的程序,不同的方块有不同的颜色,我把界面分成了若干个正方形(rectangle数组),当消掉一行后需要使这一行的正方形颜色变成上一行的正方形颜色,但是,上一行的正方形的颜色是不同而且是随机的(比如说,从左到右可能是蓝黄黑绿红,也可能是红黄黑绿白),所以不知道应该用什么方法实现那种“从画面中抽出去一行”的效果?
我在写一个俄罗斯方块的程序,不同的方块有不同的颜色,我把界面分成了若干个正方形(rectangle数组),当消掉一行后需要使这一行的正方形颜色变成上一行的正方形颜色,但是,上一行的正方形的颜色是不同而且是随机的(比如说,从左到右可能是蓝黄黑绿红,也可能是红黄黑绿白),所以不知道应该用什么方法实现那种“从画面中抽出去一行”的效果?
#6
SolidBrush、Pen都有Dispose方法,最好使用后Dispose()之,建议使用结构
using(Pen pen =...)
{
}
using(SolidBrush brush = ...)
{
}
using(Pen pen =...)
{
}
using(SolidBrush brush = ...)
{
}
#7
自己顶一下~~~大家帮帮忙啊,先谢谢各位大虾了~~~~~~
#8
你应该把整个工作区都画成格子。然后后台数据记录哪些格子要显示出来。
#9
2
g.FillRectangle(Brushes.White, rec1);
用同一种颜色,或调用创建颜色函数
3 g.Dispose();
http://www.cnblogs.com/tuyile006/archive/2007/09/07/748256.html
g.FillRectangle(Brushes.White, rec1);
用同一种颜色,或调用创建颜色函数
3 g.Dispose();
http://www.cnblogs.com/tuyile006/archive/2007/09/07/748256.html
#1
3.不必释放。GC会自动处理。
#2
哦~第三题明白了,前两道呢?尤其是第二道,怎么查也没查到,大家帮帮忙啊,谢啦~~~
#3
1.可以先画个矩形,再Fill
2.
Graphics g = this.CreateGraphics();
Rectangle rec1 = new Rectangle(10, 10, 50, 50);
Rectangle rec2 = new Rectangle(80, 80, 50, 50);
SolidBrush brush = new SolidBrush(//某种未知Color);
g.FillRectangle(brush, rec1);
g.FillRectangle(brush,rec2);
3.用Dispose()方法释放
2.
Graphics g = this.CreateGraphics();
Rectangle rec1 = new Rectangle(10, 10, 50, 50);
Rectangle rec2 = new Rectangle(80, 80, 50, 50);
SolidBrush brush = new SolidBrush(//某种未知Color);
g.FillRectangle(brush, rec1);
g.FillRectangle(brush,rec2);
3.用Dispose()方法释放
#4
1 虚线不是Rectangle定义的 是PEN里的
Pen _Pen = new Pen(Color.Red, 1);
_Pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
_Graphics.DrawRectangle(_Pen, new Rectangle(0, 0, _Control.Width-1, _Control.Height-1));
2 Rectangle不需要释放 _Graphics需要释放
3 你可以获取哪个某种未知COLOR 那你在new SolidBrush
g.FillRectangle(new SolidBrush(//某种未知Color), rec2);
Pen _Pen = new Pen(Color.Red, 1);
_Pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;
_Graphics.DrawRectangle(_Pen, new Rectangle(0, 0, _Control.Width-1, _Control.Height-1));
2 Rectangle不需要释放 _Graphics需要释放
3 你可以获取哪个某种未知COLOR 那你在new SolidBrush
g.FillRectangle(new SolidBrush(//某种未知Color), rec2);
#5
看来我没说清楚,哦……其实是这样的:
我在写一个俄罗斯方块的程序,不同的方块有不同的颜色,我把界面分成了若干个正方形(rectangle数组),当消掉一行后需要使这一行的正方形颜色变成上一行的正方形颜色,但是,上一行的正方形的颜色是不同而且是随机的(比如说,从左到右可能是蓝黄黑绿红,也可能是红黄黑绿白),所以不知道应该用什么方法实现那种“从画面中抽出去一行”的效果?
我在写一个俄罗斯方块的程序,不同的方块有不同的颜色,我把界面分成了若干个正方形(rectangle数组),当消掉一行后需要使这一行的正方形颜色变成上一行的正方形颜色,但是,上一行的正方形的颜色是不同而且是随机的(比如说,从左到右可能是蓝黄黑绿红,也可能是红黄黑绿白),所以不知道应该用什么方法实现那种“从画面中抽出去一行”的效果?
#6
SolidBrush、Pen都有Dispose方法,最好使用后Dispose()之,建议使用结构
using(Pen pen =...)
{
}
using(SolidBrush brush = ...)
{
}
using(Pen pen =...)
{
}
using(SolidBrush brush = ...)
{
}
#7
自己顶一下~~~大家帮帮忙啊,先谢谢各位大虾了~~~~~~
#8
你应该把整个工作区都画成格子。然后后台数据记录哪些格子要显示出来。
#9
2
g.FillRectangle(Brushes.White, rec1);
用同一种颜色,或调用创建颜色函数
3 g.Dispose();
http://www.cnblogs.com/tuyile006/archive/2007/09/07/748256.html
g.FillRectangle(Brushes.White, rec1);
用同一种颜色,或调用创建颜色函数
3 g.Dispose();
http://www.cnblogs.com/tuyile006/archive/2007/09/07/748256.html