从 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。我想知道如何调用我创建的方法来绘制 cirkel/正方形。
最佳答案
绘画不是这样的。
您必须仅从 OnPaint()
绘制所有内容,使用类中的数据结构来跟踪您要绘制的内容。
然后,如果您想更改它,您可以调用 Invalidate()
使其重新绘制。
关于c# - 如何在单击按钮时调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47039843/