0

言語のリストである Control - ComboBox があります。そのコンボを右クリックして、そのコンボに言語を追加しました->プロパティ->そこでプロパティを選択し、次に->アイテム(...)を含みます。行ごとにいくつかの言語を追加しました。

問題は、ユーザーがそこから選択できるものだけでなく、そのコンボボックスに書かれているものを書くことによって手動で変更できることです。したがって、現在コンボボックスに書かれているものがアイテムに含まれているかどうかを確認する必要があります。この関数をイベント「検証中」に追加しました。

private bool ValidatingComboBox(ComboBox sender)
{
   if (sender.SelectedValue != null)
   {
      if (sender.Items.Contains(sender.SelectedValue))
      {
         errorProvider.SetError(sender, "");
         return true;
      }

      else
      {
         errorProvider.SetError(sender, "No such thing in list!");
         return false;
      }
   }

   else
   {
      errorProvider.SetError(sender, "No such thing in list!");
      return false;
   }
}

しかし、コンボボックスに「英語」と書くと、アイテムに英語が入っているのになぜかエラーになってしまいます。それでも、ドロップダウン リストでマウスを使って選択して言語を変更すると、エラーは報告されません。

私は何を間違っていますか?

4

1 に答える 1

2

ユーザーが最初にそこに入力するのを防ぐことができます...彼が入力できない場合、この検証は必要ありません..これを試してください

this.comboBoxType.DropDownStyle = ComboBoxStyle.DropDownList;
于 2013-04-16T19:05:46.180 に答える