3

コンボボックスに検証を追加することにしました。達成しようとしているのは、ユーザーがコンボボックスにあるフィールドのみを入力できるようにすることですが、現在の問題は、ユーザーがコンボボックスをクリックした場合に何も入力せず、コンボボックスを離れようとすると、メッセージボックスが表示されます。

Private Sub Combobox1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles Combobox1.Validating
    If Combobox1.Items.Contains(Combobox1.Text) = False Then
        e.Cancel = True
    End If
End Sub

Private Sub Combobox1_Leave(sender As Object, e As System.EventArgs) Handles Combobox1.Leave
    If Combobox1.Items.Contains(Combobox1.Text) = False Then
        Combobox1.Select()
        MessageBox.Show("select item from combobox")
    End If
End Sub

前に述べたように、コーディングは機能しますが、ユーザーがコンボボックスに何も入力しない場合にメッセージボックスが表示されないようにしようとしていました。

4

2 に答える 2

4

あなたのコメントに基づいて、空の文字列のチェックを追加するだけでよいと思います。

Private Sub ComboBox1_Validating(ByVal sender As Object, ByVal e As CancelEventArgs) Handles ComboBox1.Validating
  If ComboBox1.Items.Contains(ComboBox1.Text) = False Then      
    e.Cancel = (ComboBox1.Text <> String.Empty)
  End If
End Sub

Private Sub ComboBox1_Leave(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.Leave
  If Not ComboBox1.Items.Contains(ComboBox1.Text) Then
    If ComboBox1.Text <> String.Empty Then
      ComboBox1.Select()
      MessageBox.Show("select item from combobox")
    End If
  End If
End Sub
于 2012-06-15T22:56:32.487 に答える
1

次のコードを使用します。

Private Sub Combobox1_Leave(sender As Object, e As System.EventArgs) Handles Combobox1.Leave

    If ComboBox2.SelectedIndex = -1 Then
        MessageBox.Show("select item from combobox")
    End If
End Sub
于 2013-04-07T01:32:39.363 に答える