Graphics.DrawString не обновляет текст в OnPaint в Windows Forms C#C#

Место общения программистов C#
Ответить
Anonymous
 Graphics.DrawString не обновляет текст в OnPaint в Windows Forms C#

Сообщение Anonymous »

Извините, если спрашиваю что-то простое. Я спросил в Discord и IRC, и уже два дня никто не предлагает решения.
У меня есть следующая форма:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.FillRectangle(Brushes.Black, ClientRectangle);
Console.WriteLine($"OnPaint: {ClientRectangle}");
e.Graphics.DrawString($"{ClientRectangle}", Font, Brushes.White, ClientRectangle);
}
}

Когда я запускаю его, я вижу черный прямоугольник и текст над ним с координатами.
Однако, когда я изменяю размер формы, я вижу кучу " OnPain: ..." (что означает, что мой OnPaint вызывается) исходный текст никогда не меняется.
Что здесь происходит на самом деле?
Я загрузил свой исходный код здесь: https://github.com/OnkelTem/CSharpDrawStringIssue
Я также записал два видео: ОБНОВЛЕНИЕ.
Решение было предоставлено в первом комментарии @Jimi. Один из способов включить перерисовку DrawString() — добавить параметр в конструктор Form1:
public Form1()
{
ResizeRedraw = true;
InitializeComponent();
}



Подробнее здесь: https://stackoverflow.com/questions/785 ... ms-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»