Trong C# WinForms - Tôi vẽ một biểu đồ dạng đường trong thời gian thực dựa trên dữ liệu nhận được qua cổng nối tiếp sau mỗi 500 ms.Biểu mẫu bắt buộc để vẽ lại?
Logic e.Graphics.DrawLine nằm trong trình xử lý OnPaint của biểu mẫu.
Khi tôi nhận dữ liệu từ cổng nối tiếp, tôi cần phải gọi một thứ gì đó khiến biểu mẫu vẽ lại để trình xử lý OnPaint được gọi. Tôi đã thử điều này.Refresh và this.Invalidate, và những gì xảy ra là tôi mất bất cứ điều gì đã được rút ra trước đó trên biểu mẫu.
Có cách nào khác để đạt được điều này mà không làm mất những gì đã được vẽ trên biểu mẫu của bạn không?
Cảm ơn - hoạt động tốt. Câu hỏi nhanh - Tôi vẽ biểu đồ đường này theo thời gian thực - cuối cùng tôi sẽ vượt quá chiều rộng tối đa có sẵn trên màn hình, vì vậy tôi sẽ muốn các đường tôi vẽ trên biểu mẫu dịch chuyển sang bên trái, nhường chỗ cho các tọa độ mới được vẽ. Có bất cứ đề nghị nào cho việc làm như thế này hả? Về cơ bản tôi đang phát triển một ứng dụng loại EKG đơn giản. – Chris
Có rất nhiều cách để thực hiện việc này. Ví dụ, bạn có thể sử dụng e.Graphics.TranslateTransform (-x, 0); Điều này làm cho tất cả các đồ họa của bạn được rút ra thay đổi trái x pixel. – Zenya