おい。ComboBox のハイライターに問題があります。最近、 ComboBox 内の特定の項目をグレー表示にする必要がありましたが、 ComboBoxに文字列を手動で (プログラム的に) 描画することでそれを行いました。DrawMode.NORMALの下の .NET コンボボックスでは、矢印をクリックするとライターが自動的に表示され、ハイライターの背景色はデフォルトでキンナ ブルーになります。問題は、アイテムの上にマウスを移動すると、ホバーしたアイテムの前色が白に変わりますが、アイテムを手動で描画すると ( DrawMode.OwnerDrawVariable )、機能しません。これで私を助けてもらえますか??
これは私がアイテムをグレーアウトする方法です、
private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
int index = e.Index;
CombinationEntry aFunction = comboBox1.Items[index] as CombinationEntry; //CombinationEntry is a custom object to hold the gray info. Gray if not available and black if available
if (aFunction.myIsAvailable)
{
e.Graphics.DrawString(aFunction.ToString(), new Font("Arial", 10, FontStyle.Regular, GraphicsUnit.Pixel), Brushes.Black, new Point(e.Bounds.X, e.Bounds.Y));
}
else
{
e.Graphics.DrawString(aFunction.ToString(), new Font("Arial", 10, FontStyle.Regular, GraphicsUnit.Pixel), Brushes.Gray, new Point(e.Bounds.X, e.Bounds.Y));
}
}