Đối với dự án hiện tại, tôi cần một menu thả xuống có tên màu (chuỗi) có hình vuông màu nhỏ bên cạnh hình ảnh (hình ảnh). Vì vậy, tôi đã có thể thiết kế một ComboBox tùy chỉnh để đạt được điều này. Tuy nhiên, tôi đang gặp một vấn đề .... khi tôi chọn một mục từ danh sách, ví dụ màu không hiển thị, chỉ có tên của màu đó. (Xem ví dụ dưới đây)Vẽ hình ảnh bên trong Hộp tổ hợp tùy chỉnh
menu mở rộng:
Sau khi mục được chọn:
Để vẽ các màu sắc bên cạnh các chuỗi để bắt đầu với, tôi sử dụng:
// Draws the items into the ColorSelector object
protected override void OnDrawItem(DrawItemEventArgs e)
{
e.DrawBackground();
e.DrawFocusRectangle();
DropDownItem item = (DropDownItem)Items[e.Index];
// Draw the colored 16 x 16 square
e.Graphics.DrawImage(item.Image, e.Bounds.Left, e.Bounds.Top);
// Draw the value (in this case, the color name)
e.Graphics.DrawString(item.Value, e.Font, new
SolidBrush(e.ForeColor), e.Bounds.Left + item.Image.Width, e.Bounds.Top + 2);
base.OnDrawItem(e);
}
Trường hợp một DropDownItem chứa hình ảnh và chuỗi được vẽ. Vì vậy ... có ai biết những gì tôi cần phải ghi đè hoặc những gì tôi cần phải làm để có được ComboBox để vẽ hình ảnh và chuỗi cả hai, giống như nó đã làm khi danh sách được mở rộng, khi một mục được chọn?
Cảm ơn rất nhiều; Chúc mừng!
Hoàn hảo! Điều đó hoạt động rất đẹp! Cảm ơn bạn rất nhiều. Tôi không có ý tưởng rằng kiểm soát chỉ đơn giản là sử dụng một đối tượng TextBox trên đầu trang; điều đó có vẻ giống như một triển khai thú vị (và không có bản năng). – JToland