2008-10-05 38 views
5

Tôi muốn tăng gấp đôi bộ đệm điều khiển tùy chỉnh chứa các nút. Tôi đã thử nhiều cách khác nhau để tăng gấp đôi bộ đệm kiểm soát; SetStyle, BufferedGraphicsContext và vẽ đến một bitmap. Tất cả đều làm việc tốt cho bản vẽ tùy chỉnh của điều khiển, nhưng không ai trong số họ xử lý việc vẽ nút vào bộ đệm phía sau. Làm thế nào để đạt được điều này?Điều khiển con đệm đôi trong điều khiển tùy chỉnh (C#)

+0

Xem thêm: http://stackoverflow.com/questions/76993/how-to-double-buffer-net-controls-on-a-form. – ESRogs

Trả lời

2

Về mặt kỹ thuật, bạn không thể và bạn thực sự không cần phải sử dụng các nút .NET WinForms chuẩn.

Các nút tự kiểm soát thông qua thuộc tính DoubleBuffered được bảo vệ. Cách duy nhất để truy cập điều này là lấy một lớp mới từ S.W.F.Button, và thực thi mã để kích hoạt thuộc tính DoubleBuffered trên các cá thể của lớp đó (tôi có thể làm điều đó trong hàm tạo). Cuối cùng, sử dụng các đối tượng của lớp mới đó trên biểu mẫu của bạn thay vì S.W.F.Buttons.

Tuy nhiên, như tôi nhớ lại, các nút được rút ra hoàn toàn từ WinAPI; chúng không phải là GDI +. Do đó, bạn không nên cần để tăng gấp đôi bộ đệm của bản vẽ. Điều đó nói rằng, tôi không biết kịch bản sử dụng của bạn và tôi không biết những gì các triệu chứng ứng dụng của bạn đang hiển thị, vì vậy tôi có thể sai. :)

Bạn có thể xem xét xem sách Pro .NET 2.0 Windows Forms and Custom Controls in C#. Tất cả điều này được tóm tắt từ thông tin trong cuốn sách đó.

Các vấn đề liên quan