14

Windows フォーム アプリケーションで多数のコンボ ボックスの選択を解除 (空白化) しようとしています。私のアプリケーションには、各コンボの SelectedIndex を -1 に設定する Reset メソッドがあります。私のコンボボックスはすべてデータバインドされています。つまり、各コンボボックスはデータソースを使用して設定されています。

Reset メソッドが機能する場合があることに気付きました。つまり、現在選択されているアイテムの選択が解除され、コンボが空白になります。ただし、最初の項目 (SelectedIndex = 0) を -1 に設定しようとした直後に選択する場合もあります。ユーザーの観点からは、フォームが常に「クリア」されるとは限らないため、これはバグのように見えます。

MSDNによると:

「現在選択されている項目の選択を解除するには、SelectedIndex を -1 に設定します。項目がデータ バインドされた項目である場合、ComboBox 項目の SelectedIndex を -1 に設定することはできません。」

回避策を知っている人はいますか?

どうもありがとう

4

14 に答える 14

26

void とプロパティの組み合わせを使用する

comboBox.ResetText();

 //to reset selected value
comboBox.SelectedIndex = -1;
于 2014-12-01T19:22:37.873 に答える
1

次のコードのみが機能するので、試してください。

comboBox.ResetText();   //framework  4.0 
于 2014-08-27T16:13:47.123 に答える
0

[ComboBoxObj].SelectedIndex=-1; を設定してみてください。これは空の値になります。-1 は、コンボボックスの値を選択解除または無効にすることを示します

ありがとう

于 2013-12-05T10:09:45.040 に答える
0

ターゲット フレームワークが 4.0 の場合 - 解決策は次のとおりです。

.Net Framework 4.5 をインストールします (プロジェクトのターゲット フレームワークを変更せず、フレームワークをインストールするだけです)。インストール後、その行はデータバインドされたコンボボックスの選択を解除します:

combobox.SelectedValue = 0;

私の値のメンバーは "Id" int 主キーの自動インクリメントであるため、そのフィールドには値 0 が含まれていません。ただし、.net45 をサポートしていない Windows バージョンでは機能しません。

于 2013-10-21T06:15:53.990 に答える
0

私はしばらくの間この問題を抱えていましたが、使用する場合:

「コンボボックス.ResetText();」

テキストが "" になり、コンボ ボックス内の項目は影響を受けません。

アプリケーションで次のコードを使用しました

 private void UpdateComboBox(ComboBox Box, string Group, List<string> Numbers)
        {
              Box.Items.Clear();
              Box.BeginUpdate();            
              Box.Items.Add("<<Add Contact>>");
              foreach (string item in Numbers)
              {
                   if(item != "")
                        Box.Items.Add(item);
              }
          Box.EndUpdate();
          Box.ResetText();
        }

したがって、すべてのアイテムがコンボ ボックスに入ったら、メソッドを最後に実行します。

于 2017-01-07T09:37:31.060 に答える
0

次のコード行を試してください。

combobox1.Items.clear();

わたしにはできる。

于 2020-07-17T07:02:26.600 に答える
-1

次のように、コンボボックスに空のアイテムを 1 つ追加します。

cb.Items.Add("");

この後、最後の cb 項目を選択してコンボボックスの選択を解除できます。

cb.SelectedIndex = cb.Items.Count - 1;

ほら!

コンボボックスの最後の場所が空になりますが、気にすることはありません。でしょうか?:-)

于 2012-08-02T14:56:50.017 に答える