2010-11-20 21 views
5

Tôi đang sử dụng điều khiển System.Windows.Forms.ListView trên .NET 2.0. Tôi biết tôi có thể thiết lập thuộc tính OwnerDraw trên ListView thành true và sau đó ghi đè lên OnDrawItem để tùy chỉnh vẽ ListViewItems của tôi. Tôi cũng có thể ghi đè lên OnDrawColumnHeader và OnDrawSubItem để vẽ các thành phần đó.Có thể tùy chỉnh vẽ một ListViewGroup

Tuy nhiên, không có phương thức "OnDrawGroup" tương đương để ghi đè nếu tôi muốn tùy chỉnh vẽ ListViewGroups của mình.

Tôi đã xem qua các thông báo mà điều khiển này sử dụng và tôi thấy có các thông báo WM_CUSTOMDRAW và CDDS_ITEMPREPAINT, nhưng tôi tự hỏi có cách nào để xử lý các thư gốc này để tùy chỉnh vẽ ListViewGroups của tôi không?

Trả lời

2

Tôi không tin rằng điều này là có thể bằng cách sử dụng cơ chế tích hợp sẵn. Tôi nghĩ bạn sẽ phải tự mình vẽ mọi thứ.

2

Nó không thể thực hiện được.

Bạn không thể làm điều đó bằng cách tự vẽ mọi thứ hoặc bằng cách thả xuống để xử lý WM_CUSTOMDRAW hoặc thậm chí bằng cách sử dụng undocumented ListView interfacesused here.

Cuộc thảo luận này đã xuất hiện nhiều lần (here for example). Tiêu đề nhóm trong một ListView là những con thú kỳ lạ. Trong XP, bạn có thể đặt nhiều màu sắc nhất (thậm chí không phải phông chữ của chúng), nhưng kể từ Vista, bạn hoàn toàn không thể làm gì với chúng.

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