求:怎么在panel控件上画个矩形? g=panel.CreateGraphics();g.drawrectangle(参数); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想你是说这样吧:protected override void OnPaint(PaintEventArgs e) { Graphics g=e.Graphics ; g.FillRectangle (new SolidBrush (Color.Red ),a,b,22,22); }可这样只能画出一个图,当再点击panel的时候,就不好用了,我想在这两句中间在加一句:panel1_MouseDown();可加上这句就有错误,重载“panel1_MouseDown”方法未获取“0”参数 Graphics g=e.Graphics ;private int i;private int j;private bool bz=false;在mousedown中i=e.X;j=e.Y;bz=true;在mouseup中if (BZ){panel1.CreateGraphics(new SolidBrush (Color.Red ),e.X,e.Y,i,j);bz=false;}就ok了! panel1.CreateGraphics(new SolidBrush (Color.Red ),e.X,e.Y,i,j);该panel1.CreateGraphics(new SolidBrush (Color.Red ),e.X,e.Y,i-e.X,j-e.Y); 谢谢:zhangfqq(操在墙头)请问:Graphics g=e.Graphics ;private int i;private int j;在那定义呀,应该是全局变量把,不让能在mousedown中应用吗,可如果是全局变量,那Graphics g=e.Graphics ;中的e又是从那来的呢? private void panel1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) {//将代码写在这里,e指的是System.Windows.Forms.PaintEventArgs变量,它是提供绘制事件的... } private ArrayList p;private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){ a=e.X-25; b=e.Y-25;Point point=new Point();point.X=a;point.Y=b;} private ArrayList p;private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e){ a=e.X-25;b=e.Y-25;Point point=new Point();point.X=a;point.Y=b;p.Add(point);}protected override void OnPaint(PaintEventArgs e){ Graphics g=e.Graphics ;Point point =new Point();for(int i=0;i<p.Count;i++){point=(Point)P[i]; g.FillRectangle (new SolidBrush (Color.Red ),point.X,point.Y,22,22);}} 谢谢:wzs_wzs123(蓝天百云) 可我试了不行呀,错误提示为:未处理的“System.NullReferenceException”类型的异常出现在 system.windows.forms.dll 中其他信息:未将对象引用设置到对象的实例。 判断类型的问题,急!急!急! 新人请教问题 Main参数的疑问 大家觉得智能客户端的应用前景如何?比如哪些领域会在这项微软极力推出的技术中得到广泛应用? C#实时更新信息的问题 求助:HttpWebResponse执行GetResponse()失败,408错误 Visual Assist 使用的一个小问题 关于ASP.NET中TREEVIEW的CHECKBOX用法?? 请教!多层和2层的选择! 问一个关于算法的问题? c#中结构数组怎么定义?怎么获取一个字符的ascii码? pictrue 里面GDI画图能不能自动生成滚动条的?
protected override void OnPaint(PaintEventArgs e)
{
Graphics g=e.Graphics ;
g.FillRectangle (new SolidBrush (Color.Red ),a,b,22,22);
}
可这样只能画出一个图,当再点击panel的时候,就不好用了,我想在这两句中间在加一句:
panel1_MouseDown();
可加上这句就有错误,重载“panel1_MouseDown”方法未获取“0”参数
private int i;
private int j;
private bool bz=false;
在mousedown中
i=e.X;j=e.Y;
bz=true;
在mouseup中
if (BZ)
{
panel1.CreateGraphics(new SolidBrush (Color.Red ),e.X,e.Y,i,j);
bz=false;
}
就ok了!
该
panel1.CreateGraphics(new SolidBrush (Color.Red ),e.X,e.Y,i-e.X,j-e.Y);
请问:
Graphics g=e.Graphics ;
private int i;
private int j;
在那定义呀,应该是全局变量把,不让能在mousedown中应用吗,可如果是全局变量,那
Graphics g=e.Graphics ;中的e又是从那来的呢?
{
//将代码写在这里,e指的是System.Windows.Forms.PaintEventArgs变量,它是提供绘制事件的...
}
private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
a=e.X-25;
b=e.Y-25;Point point=new Point();
point.X=a;
point.Y=b;
}
private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
a=e.X-25;
b=e.Y-25;Point point=new Point();
point.X=a;
point.Y=b;
p.Add(point);
}protected override void OnPaint(PaintEventArgs e)
{
Graphics g=e.Graphics ;
Point point =new Point();
for(int i=0;i<p.Count;i++)
{
point=(Point)P[i];
g.FillRectangle (new SolidBrush (Color.Red ),point.X,point.Y,22,22);
}}
可我试了不行呀,错误提示为:
未处理的“System.NullReferenceException”类型的异常出现在 system.windows.forms.dll 中其他信息:未将对象引用设置到对象的实例。