問題タブ [ondrawitem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - DrawItem イベントは、ユーザーが ListBox をクリックしたときにのみ発生します。
VS 2015 を使用して C# でクライアント/サーバー WinForms アプリケーションを作成しています。
DrawItemイベントがオーナーによって描画されるListBoxコントロールがあります (はい、DrawModeプロパティをOwnerDrawFixedに設定します)。これは、新しいメッセージを受信するたびに再描画する必要があります。
このコールバックは、次の参照に従って使用します。
これがMeasureItemメソッドです。
メッセージは を使用して受信および挿入ListBox.Add()
され、デバッガーによって確認されて機能します。
しかし、ListBoxはクリックしたときにのみ再描画されます(フォーカスが発生すると思います)。
私はすでに試しました.Update()
が、うまく.Refresh()
いき.Invalidate()
ませんでした。
DrawItem()
コードからトリガーする方法はありますか?
winforms - Windows フォーム: ComboBox の SelectedItem を手動でペイントする
type の項目で満たされた ComboBox (より正確には ToolStripCombobox) がありますKeyValuePair<Int32, FontFamily>
。DrawItem イベントを使用して、項目を手動でペイントすることができました。したがって、すべてのアイテムは、対応する KeyValuePair の FontFamily で描画されます。これは DropDownList では問題なく機能しますが、リストからアイテムを選択してリストを閉じると、ComboBox 内のテキストは "[21, [FontFamily: Name=Arial]]" のようになります。 SelectedItem.ToString()。
この問題を解決する方法はありますか?
カスタム DrawItem メソッドのコードは次のとおりです。
アップデート:
ComboBox の DropDownStyle をComboBoxStyle.DropDownList
しかし、私はむしろ を使用ComboBoxStyle.DropDown
したいので、テキストを編集してフォントを検索できます。
c# - winform リストボックス drawitem 部分文字列の色を変更
リストボックスをテキストボックス入力でフィルタリングできるように、テキストボックスとリストボックスの両方が同じバインディングソースを共有するwinformカスタムコントロールを作成しました。
テキストを部分文字列として検索したフィルタリングされたアイテムが異なる色または強調表示されるように、lisbox drawitem をオーバーライドする必要があります。(すなわち、) 以下のサンプル画像のような黄色のハイライトが予想されます。
私は以下のようにしました
その結果、アイテムのテキストが文字で上書きされました。
エラー部分を特定できません。長方形の境界または引き紐部分にあります。また、アイテムの背景色とは別に、アイテム テキストの部分文字列の背景を変更するにはどうすればよいですか。これについて私を助けてください。