意図的に。Style = DropDown の場合、コンボボックスのテキスト部分は TextBox です。キュー バナーを斜体以外のスタイルで表示します。このコードで確認できます。Style = DropDownList の場合は、バナーと実際の選択範囲を区別できるようにすることが重要です。斜体で表示することを選択した理由は間違いありません。TextBox は別の方法で、フォーカスを取得するとバナーを非表示にします。
非尽力的なバージョンを投入する:
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
class CueComboBox : ComboBox {
private string mCue;
public string Cue {
get { return mCue; }
set {
mCue = value;
updateCue();
}
}
private void updateCue() {
if (this.IsHandleCreated && mCue != null) {
SendMessage(this.Handle, 0x1703, (IntPtr)0, mCue);
}
}
protected override void OnHandleCreated(EventArgs e) {
base.OnHandleCreated(e);
updateCue();
}
// P/Invoke
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, string lp);
}