Tôi đã tạo một Windows Forms User Control, tôi kéo, thả một bảng điều khiển bên trong nó và trên bảng điều khiển tôi vẽ biểu đồ trong sự kiện Paint của Panel.Panel Control Paint Sự kiện không hoạt động cho điều khiển người dùng
private void pnlViewer_Paint(object sender, PaintEventArgs e)
{
e.Graphics.TranslateTransform(pnlViewer.AutoScrollPosition.X, pnlViewer.AutoScrollPosition.Y);
e.Graphics.FillRectangle(Brushes.Black, Screen.PrimaryScreen.Bounds);
//**draw Y Axis**
int y;
for (int i = 0; i <= 50; i++)
{
y = (i * cellHeight) + cellHeight;
e.Graphics.DrawLine(new Pen(Color.FromArgb(50, 50, 50)),
new Point(0, y), new Point(pageWidth, y));
}
//**draw X Axis**
int x;
for (int i = 0; i < 50; i++)
{
x = (i * cellWidth) + ribbonWidth;
e.Graphics.DrawLine(new Pen(Color.FromArgb(50, 50, 50)),
new Point(x, 0), new Point(x, pageHeight));
}
DrawWaveForm(e.Graphics); **// Here the actual data of graph will draw**
}
Khi tôi kéo điều khiển người dùng này lên một WinForm, nó gọi sự kiện sơn này của User Control từ hình thức cửa sổ, nhưng khi gọi sự kiện này đồ thị được hiển thị nhưng sau một thời gian biểu đồ trở nên trống.
Tôi đã thử Invalidate(true), Update(), Refresh()
tất cả các phương pháp như vậy nhưng chúng không được sử dụng.
Thực tế nó hiển thị một nửa biểu đồ trên biểu mẫu và sau đó là biểu đồ đầy đủ mà tôi yêu cầu, nhưng thực sự tôi muốn có sự kiện Paint đầu tiên thay vì một nửa biểu đồ hiển thị biểu đồ đầy đủ.
Làm thế nào để bạn vẽ trong 'DrawWaveForm()' mà không đi một 'đối tượng Graphics'? – Andy
@Andy xin lỗi tôi chỉ cần quên thêm nó nhờ để hiển thị sai lầm ngớ ngẩn của tôi cũng cập nhật mã nhờ những người một lần nữa ........ –
Điều này có được giải quyết ngay bây giờ bằng cách sửa lỗi đó? –