如何在点击按钮时调用方法?

时间:2017-10-31 16:09:05

标签: c#

单击Windows窗体中的按钮不起作用。

因为,我必须为方法使用参数“Graphics g ...”。我不能改变方法,所以当用户点击按钮时我必须改变一些东西。

以下是代码:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

//protected override void OnPaint(PaintEventArgs e)
    //{
    //    Graphics g = e.Graphics;
    //    TekenCirkel(g, 50, 50, 100, 100);
    //    TekenRechthoek(g, 0, 0, 100, 100);
    //}

    public void TekenCirkel(Graphics g, int x, int y, int w, int h) {
        Pen cirkel = new Pen(Color.Blue, 2);
        g.DrawEllipse(cirkel, x,y, w, h);
    }

    public void TekenRechthoek(Graphics g, int x, int y, int w, int h){
        Pen rechthoek = new Pen(Color.Black, 2);
        g.DrawRectangle(rechthoek, x, y, w, h);
    }

    private void Cirkel_Click(object sender, EventArgs e)
    {

        TekenCirkel(g, 50, 50, 100, 100);
    }
}

正如您所看到的,我使用onPaint方法测试它并定义g的作用。使用此方法时,代码可以正常工作。但是,当尝试单击按钮时,这是不可能的。因为EventArgs和PaintEventArgs是不同的东西。

E:您点击一个按钮,表格上会画一个圆圈/方形。我想知道如何调用我创建的方法来绘制cirkel / square。

1 个答案:

答案 0 :(得分:3)

这不是绘画的作用。

您必须仅使用OnPaint()绘制所有内容,使用班级中的数据结构来跟踪您想要绘制的内容。

如果要更改它,请调用Invalidate()进行重新绘制。