этот код работает очень хорошо, когда он находится в другом делегате, но не работает, когда он запускается кнопкой. «Draw_Click» - это кнопка «Рисовать», и она должна сделать рисунок на экране на основе предварительно созданного массива точек.Невозможно заставить DrawLine работать при нажатии кнопки.
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“не существует в текущем контексте»
Спасибо за любую помощь ,
Он имеет отношение к спецификатору 'this'; это, вероятно, относится к неправильному контексту в функции. Попробуйте идентифицировать объект, используя его фактическое полное имя. –
@ Жан-Поль, использующий 'this' в Winforms, является общим, это относится к форме, в которой активировано событие Click(). – DrewJordan
@DrewJordan: Ах, ладно, не знал этого. Спасибо. –