Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C语言在窗体上绘制矩形#_C#_Graphics - Fatal编程技术网

C# 用C语言在窗体上绘制矩形#

C# 用C语言在窗体上绘制矩形#,c#,graphics,C#,Graphics,如何在C#中的表单上绘制一个矩形,当我处理表单时,即在表单上放置按钮或文本框时,该矩形对我是可见的。我使用下面的方法在窗体上创建一个矩形,但它只有在运行窗体时才可见,而我希望它在设计时可见 我的代码如下: protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; g.PageUnit = GraphicsUnit.Inch; Pen red1 = new Pen(Col

如何在C#中的表单上绘制一个矩形,当我处理表单时,即在表单上放置按钮或文本框时,该矩形对我是可见的。我使用下面的方法在窗体上创建一个矩形,但它只有在运行窗体时才可见,而我希望它在设计时可见

我的代码如下:

protected override void OnPaint(PaintEventArgs e)
{    
    Graphics g = e.Graphics;
    g.PageUnit = GraphicsUnit.Inch;
    Pen red1 = new Pen(Color.Green, 0.03f);
    g.DrawLine(blackpen, 1, 2, 1, 3);
    g.DrawLine(red1, 1,2, 3,2 );
    g.DrawLine(red1, 1, 3, 3, 3);
    g.DrawLine(red1, 3, 2, 3, 3);
}

您需要将
Paint
事件附加到表单

只需在构造函数中添加以下语句

this.Paint += new PaintEventHandler(OnPaint);
并将方法签名更改为

void OnPaint(object sender, PaintEventArgs e)

@Asif给出错误:“OnPaint”没有重载匹配委托“System.Windows.Forms.PaintEventHandler”怎么办?您需要将方法签名更改为void OnPaint(对象发送方,PaintEventArgs e)@Asif现在给出另一个错误:line_draw.Form1.OnPaint(对象,System.Windows.Forms.PaintEventArgs)“:找不到合适的方法重写RRY,但这个答案不正确——问题出在其他地方。请在我链接到的副本中查看接受的答案。@Asif错误已消失,但矩形仅在运行时可见。我绘制矩形的方法是否正确。是否可能重复