Top / .NET備忘録 / 04.最難関!ComboBox / 03.NewIndex プロパティ

NewIndex プロパティは、ListBox と同様、WndProc をオーバーライドしてメッセージを捕まえるだけです。

    private int m_NewIndex = -1; // 初期値は -1
 
    const int
    CB_ADDSTRING = 0x0143,
    CB_DELETESTRING = 0x0144,
    CB_INSERTSTRING = 0x014A,
    CB_RESETCONTENT = 0x014B;
 
    [DebuggerStepThrough]
    protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {
            case CB_ADDSTRING:
                // 追加されたときは戻り値が NewIndex 
                base.WndProc(ref m);
                m_NewIndex = m.Result.ToInt32();
                break;
 
            case CB_INSERTSTRING:
                // 挿入されたときは WParam が NewIndex 
                base.WndProc(ref m);
                m_NewIndex = m.WParam.ToInt32();
                break;
 
            case CB_DELETESTRING:
            case CB_RESETCONTENT:
                // 削除、クリアされたときは -1 に戻します
                base.WndProc(ref m);
                m_NewIndex = -1;
                break;
 
            default:
                base.WndProc(ref m);
                break;
        }
    }
 
    [Browsable(false)]
    [EditorBrowsable(EditorBrowsableState.Always)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public int NewIndex
    {
        get { return m_NewIndex; }
    }



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2013-03-05 (火) 22:20:40 (1691d)