1
使用this後標記的答案中的示例我想出了這個。C#組合框項目高亮不能使用DrawItem
private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
using (DBDataContext data = new DBDataContext())
{
var query = (from a in data.Programs
where a.IsCurrentApplication == 1
select a.Name).Distinct();
e.DrawBackground();
string text = ((ComboBox)sender).Items[e.Index].ToString();
Brush brush;
if (query.Contains(text))
{
brush = Brushes.Green;
}
else
{
brush = Brushes.Black;
}
e.Graphics.DrawString(text,
((Control)sender).Font,
brush,
e.Bounds.X, e.Bounds.Y);
}
}
我在做什麼是查詢數據庫的應用程序與標誌。如果標誌爲真(1),那麼我將組合框項目的文本更改爲綠色。我的問題是,一旦所有的項目都繪製完畢。當我將光標懸停在項目上時,它不會突出顯示。但它確實稍微改變了文本的黑暗程度。有沒有辦法讓突出顯示工作?
爲什麼不突出控件中的文本是嗎?這會產生更深刻的視覺衝擊,並且更加引人注目。 – Brian
我可以試試。我不熟悉這是如何完成的。你有什麼建議嗎?感謝您的快速回復@Brian – HiTech
@HiTech不建議在'DrawItem'事件處理程序中查詢某些內容。查詢可能會延遲繪圖並導致意外的結果。 –