单击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。
答案 0 :(得分:3)
这不是绘画的作用。
您必须仅使用OnPaint()
绘制所有内容,使用班级中的数据结构来跟踪您想要绘制的内容。
如果要更改它,请调用Invalidate()
进行重新绘制。