コンボボックスにテンプレート名を入力するシナリオがあります。テンプレートの中にはデフォルトテンプレートがあります。コンボボックスに値を入力すると、デフォルトのテンプレート名が強調表示されます(その結果、アイテムのうちどれがデフォルトになっているかが分かります)。それは可能ですか?はいの場合はどうですか?私はC#2.0でWindowsフォームを使用しています。コンボボックス内の特定の項目の強調表示
2
A
答えて
8
項目を強調表示する方法に少し依存します。既定のアイテムのテキストを太字で表示する場合は、このようにすることができます(これを行うには、ComboBoxのDrawMode
をOwnerDrawFixed
に設定し、DrawItemイベントをイベントハンドラに接続する必要があります) :
私はこのように定義され、テンプレートのオブジェクトとのコンボボックスを埋めています
private class Template
{
public string Name { get; set; }
public bool IsDefault { get; set; }
public override string ToString()
{
return this.Name;
}
}
...とDrawItemイベントは次のように実装されている:あなたが軌道に乗る必要があります
private void ComboBox_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index < 0)
{
return;
}
Template template = comboBox1.Items[e.Index] as Template;
if (template != null)
{
Font font = comboBox1.Font;
Brush backgroundColor;
Brush textColor;
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
backgroundColor = SystemBrushes.Highlight;
textColor = SystemBrushes.HighlightText;
}
else
{
backgroundColor = SystemBrushes.Window;
textColor = SystemBrushes.WindowText;
}
if (template.IsDefault)
{
font = new Font(font, FontStyle.Bold);
}
e.Graphics.FillRectangle(backgroundColor, e.Bounds);
e.Graphics.DrawString(template.Name, font, textColor, e.Bounds);
}
}
正しい方向、私希望。
0
コンボボックスのDrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariableを設定します。そして、これを達成するために、 Combobox_MeasureItem()とCombobox_DrawItem()メソッドをオーバーライドします。
関連する問題
- 1. 項目を強調表示onClick - React.js
- 2. 検索結果内の特定の項目を強調表示する方法はありますか?
- 3. WPF:ツリービュー項目を強調表示コンテキストMeuを表示
- 4. メニューの現在の項目を強調表示します
- 5. 角度ルーティング:アクティブなサブメニュー項目の親メニュー項目を強調表示する
- 6. <body id>と2つのナビゲーション項目を強調表示
- 7. リストで項目を強調表示するときのパフォーマンス
- 8. プログラムでリストビューの項目を強調表示する方法は?
- 9. 剣道UI ListViewの特定の項目をどのように強調表示できますか?
- 10. ListView選択した項目を強調表示
- 11. アンドロイド:RecyclerViewで選択された項目を強調表示
- 12. jquery treeview選択した項目を強調表示
- 13. メニュー項目を特定のメニューにルーティングした後で強調表示する方法は?
- 14. コンボボックス表示されない項目
- 15. Visual Studioのマージンバーのすべての項目を強調表示します。2015
- 16. 選択時にグリッド表示項目を強調表示する方法は?
- 17. 特定の範囲のグラフを強調表示
- 18. JCalendarセルの特定の日付を強調表示するJava
- 19. c3.js特定のものを強調表示
- 20. Googleシート:特定のユーザーの編集を強調表示
- 21. ggplotの特定の値を持つ特定のバーを強調表示
- 22. Springフォームのselectタグで複数の項目が強調表示されない
- 23. jQueryを使用してnavメニューの現在のページ項目を強調表示
- 24. WPF:コンボボックスのドロップダウンでテキストが強調表示されます。
- 25. jtextpaneから特定の行を強調表示
- 26. mark.js特定の単語を強調表示する
- 27. DataGridViewで特定の行を強調表示する方法
- 28. CSS/JavaScriptで特定の単語を強調表示する
- 29. 2つのメニューでjQueryを使ってメニュー項目を強調表示
- 30. EclipseのEmacsキーバインディングで選択項目を強調表示する方法は?
あなたのソリューションを実装しました。ありがとう、百万フレドリック!このコードは私には魔法のようでした:) –