Я хочу показать некоторую графику в приложении Winform, это будет инструмент для рисования биржевой диаграммы. Я думаю (но я не уверен ...) Я должен использовать PictureBox и использовать примитивы рисования класса System.Drawing.Graphics для рисования диаграммы. Я начал кодировать его, теперь он работает более или менее, но у меня есть проблема с функцией изменения размера, как показано ниже: когда я изменяю размер всей формы, я вижу, что программа показывает графику, а затем сразу ее очищает. Когда я прекращаю движение мыши (без отпускания кнопки мыши) графика исчезает!?!?
Я сделал небольшую тестовую среду для демонстрации ошибки:
Используя VS2005, создайте новое приложение C # для Windows Forms, добавив в форму только PictureBox.
Установка привязки PictureBox слева, сверху, справа и снизу. Добавьте два обработчика событий: изменение размера в PictureBox и рисование в форму.
namespace PictureBox_Resize {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
Ellipse_Area = this.pictureBox1.Size;
}
private Pen penBlack = new Pen(Color.Black, 1.0f);
private Size Ellipse_Area;
private void Form1_Paint(object sender, PaintEventArgs e) {
Graphics g = this.pictureBox1.CreateGraphics();
g.DrawEllipse(penBlack, 0, 0, Ellipse_Area.Width, Ellipse_Area.Height);
}
private void pictureBox1_Resize(object sender, EventArgs e) {
Control control = (Control)sender;
Ellipse_Area = control.Size;
this.pictureBox1.Invalidate();
}
}
}
Это небольшое приложение показывает проблему. Он только рисует эллипс, но, конечно, мой код рисования намного сложнее ...
Есть идеи, почему эллипс исчезает, когда я изменяю размер формы?