ComboBox
ユーザーが日付を選択できるカスタムを作成しています。カレンダーの表示がローカライズされているため、組み込みがDateTimePicker
望ましくありません [詳細については、こちらを参照してください]。ルック アンド フィールまたは既存のコンポーネントを反映する UI コントロールが必要です。これが私が試したことと私が遭遇した問題です:
TextBox
描画されたComboBox
ボタンでの使用: 使用してみましたComboBoxRenderer.DrawDropDownButton
が、ルック アンド フィールが既存の UI コントロールを反映していません。特にApplication.EnableVisualStyles()
、ボタンは Windows 98 のルック アンド フィールを持っています。ComboBoxRenderer
光沢のある灰色のボタンを描画します。- a
ComboBox
と aToolStripDropDown
を使用してカレンダー コントロールを含めます。ボタンのルック アンド フィールは適切ですが、ドロップダウン ボックスを完全に非表示にすることはできません。はToolStripControlHost
ドロップダウン ボックスを効果的に非表示にしていますが、ボタンをクリックすると、 が表示される直前にドロップダウン ボックスがレンダリングされているのがわかりToolStripDropDown
ます。ドロップダウン ボックスを効果的に無効にする回避策を試しましたが、ご想像のとおり、ボタンが押されたという望ましい視覚的状態を維持しません (ボタンを描画すると、上記の問題に戻ります)。ドロップダウン ボックスの高さをゼロに設定しOnMeasureItem
ても機能しません。ただし、レンダリングが特に悪く見えないように、ドロップダウン ボックスをカレンダー UI セレクターと同じ高さにすることができると思います。
必要な動作を取得するための既存のメカニズムはありますか:TextBox
選択した日付をドロップダウン矢印ボタンで表示し、クリックするとカレンダー UI 選択コンポーネントが表示されます。カレンダー コンポーネントは既に存在し、ボタンは既存の Windows 98 ルック アンド フィールComboBox
ボタンのように見える必要があります。
お時間を割いていただき、ありがとうございました。