此代码在不同的代表中时工作正常,但是当按钮触发它时不起作用。" draw_click"是一个称为" draw"的按钮,它应该根据预先制作的点阵列在屏幕上制作绘图。
private void Draw_Click(object sender, EventArgs e)
{
Graphics myInstance = this.CreateGraphics();
for (int t = 0; t <= numberOfPoints - 1; t++)
{
myInstance.DrawLine(pen, spiroArray[0, t], spiroArray[1, t], spiroArray[0, t + 1], spiroArray[1, t + 1]);
}
}
但是,当我在此类中具有相同的代码时,它可以正常工作(减去MyInstance行)。
private void Form1_Paint(object sender, PaintEventArgs e)
{
}
我使用" e"而不是" myinstance"只是为了使这个问题尽可能简短。
基本上,form1_paint有什么特别之处?即使在那个特殊的Form1Paint类之外,我也不应该让它吸引一些东西吗?如果我使用该form1_paint,则无法控制绘图。我基本上试图将其更新图形时,当用户更改参数等。
。错误是"错误1名称'drawline'在当前上下文中不存在"
感谢您的任何帮助。
我不确定我是否正确地收到您的问题,因为如果我以我的想法阅读了您的问题并编码您的问题,那么您应该得到的错误是"笔"不存在当前上下文。如果您使用相同的代码绘制,它将在button_click或form_paint事件上使用。"此"仍将指向表单,并使用它来实例化图形对象将使您可以访问表单中的任何位置绘制。从按钮单击处理程序或表单油漆方法。但是,唯一可以看到失败的人是您从未定义笔。这是我使用的代码,当表格首次出现时,它引起了红线,然后在我单击我放置在同一表单上的按钮时绘制了一条黑线。
private void button1_Click(object sender, EventArgs e)
{
Graphics myInstance = this.CreateGraphics();
myInstance.DrawLine(Pens.Black, 15, 10, 25, 20);
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics myInstance = this.CreateGraphics();
myInstance.DrawLine(Pens.Red, 10, 10, 20, 20);
}
您的问题声明中必须有一些东西。