qq_40412124 2023-03-08 23:42 采纳率: 0%
浏览 40
已结题

VS C#在事件click中创建paint方法无反应?

在事件中使用paint重绘方法,不能成功,为啥呢😂
private void button1_Click(object sender, EventArgs e)
{

        label1.Paint +=  MyPaintHandler;


    }
    public void MyPaintHandler(object sender, PaintEventArgs e)
    {
        int i = 0;
        i = 2;
        i = 3;

    }
  • 写回答

4条回答 默认 最新

  • CQ.abc 2023-03-09 00:19
    关注

    在这段代码中,虽然已经将MyPaintHandler方法绑定到label1的Paint事件上,但是在MyPaintHandler方法中并没有进行任何绘制操作,而只是简单地对一个变量进行了赋值操作。因此,重绘操作并不会触发。

    如果想要在Paint事件中使用PaintEventArgs参数进行绘制操作,可以在MyPaintHandler方法中使用Graphics对象进行绘制。例如,可以使用以下代码:
    望采纳🥰🥰🥰

    
    
    private void button1_Click(object sender, EventArgs e)
    {
        label1.Paint += MyPaintHandler;
    }
    
    public void MyPaintHandler(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        Pen pen = new Pen(Color.Red, 2);
        g.DrawLine(pen, 0, 0, 100, 100);
    }
    

    上述代码中,首先将MyPaintHandler方法绑定到label1的Paint事件上。在MyPaintHandler方法中,通过PaintEventArgs参数获取到Graphics对象,然后创建一个Pen对象,并使用Graphics对象的DrawLine方法进行绘制。这样,当label1重绘时,就会触发MyPaintHandler方法进行绘制操作。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月15日
  • 创建了问题 3月8日