1

ですから、私のような質問がたくさんありますが、私が必要としているものは正確にはありません。都市のリストが入力されたコンボボックスがあります。オートコンプリートをオンにしましたが、suggestappendもオンにすると、希望どおりに機能します。ただし、問題は、ユーザーがコンボボックスからタブで移動しようとしても、実際にはアイテムを選択しないことです。ここに例があります:私は「オーランド」を探しています。「orla」と入力すると、候補は残りの単語(選択済み)に入力されるため、「orlando」と表示されます。それが私が選びたいアイテムです。Enterキーを押してからタブアウトすると、アイテムが選択されてからタブアウトされます。ただし、必要なのは、タブアウトして単語に一致する基になるアイテムを選択することです。もっと説明する必要がある場合は、できます。前もって感謝します!

ルーク

4

3 に答える 3

1

どのバージョンの.NETを使用していますか?3.5で試しましたが、動作はあなたが説明したものとは逆です。名前の一部を入力してタブアウトすると、リスト内のアイテムが選択されます。Enterキーを押すと、アイテムが選択されず、入力したばかりの値が実際にクリアされます。

プロパティはComboBoxでどのように設定されていますか?AutoCompleteMode=SuggestAppendとAutoCompleteSource=ListItemsがあります。

于 2009-08-14T06:21:22.030 に答える
1

OPと同じ動作が得られ、マークされた回答(問題を再現できないAlbertから)は解決策ではありません。この問題は、バグとしてConnectにも報告されています。

https://connect.microsoft.com/VisualStudio/feedback/details/711945/tab-on-a-winforms-combobox-with-properties-dropdownstyle-dropdownlist-autocompletemode-append-autocompletesource-listitems-doesnt-work-correctly

Connect Bugの回避策のセクションで指定されているように、わざわざカスタムコンボボックスコントロールを作成する必要はありませんでした。代わりに、ドロップダウンリストをデフォルト値で設定します。

cboAccount.SelectedValue = _accountList(0).Key;   //<--Here I set a default value
cboAccount.DroppedDown = true;
于 2015-08-19T01:15:02.463 に答える
0

値はWM_KILLFOCUSメッセージで失われます。WndProcのサブクラスでオーバーライドすると、ComboBoxこの問題が解決しました。残念ながら、手元にあるのはVB.NETコードだけです。

Protected Overrides Sub WndProc(ByRef m As Message)
    If m.Msg = &H8 Then  'WM_KILLFOCUS
        Dim sText As String = Me.Text
        MyBase.WndProc(m)
        Me.Text = sText
        Exit Sub
    End If

    MyBase.WndProc(m)
End Sub
于 2017-04-06T08:44:03.470 に答える