none
为什么ComboBox.SelectedIndex不是我想象中的结果 RRS feed

  • 问题

  • 【前提】

    窗体上放置一个ComboBox和一个Button,并添加以下代码。

    Code Snippet

    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            MsgBox(Me.ComboBox1.SelectedIndex)
        End Sub

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.ComboBox1.Items.AddRange(New Object() {"aa", "bb", "cc", "dd"})
        End Sub
    End Class

     

     

    【操作步骤】

    1、ComboBox选中一个项目(例如"bb"),单击Button,MsgBox提示"1"。这个没有问题。

    2、再次打开ComboBox下拉列表,不要关闭下拉列表,按下BackSpace键清空ComboBox中的内容,仍然不关闭下拉列表,直接点击Button,MsgBox仍然提示"1"。但此时下拉列表中显示的为空白,按理说应该SelectedIndex = -1才对啊???

       

    2008年3月26日 4:37

答案

全部回复

  • Code Snippet

    Me.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList

     

     

    2008年4月3日 1:37
    版主
  •  feiyun0112 写:

    Code Snippet

    Me.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList

     

     

    感谢你的解答。

    但是这个ComboBox必须是DropDown类型的。

    在这个前提下,有什么解决方案么?

    2008年4月8日 7:02
  •  m00ner 写:
     feiyun0112 写:

    Code Snippet

    Me.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList

     

     

    感谢你的解答。

    但是这个ComboBox必须是DropDown类型的。

    在这个前提下,有什么解决方案么?

     

    Code Snippet

     

    If (ComboBox1.SelectedItem.ToString() = ComboBox1.Text) Then

                MsgBox(ComboBox1.SelectedIndex)
            End If

     

     

    2008年4月8日 7:21
    版主