如何在组合框中添加所选文本的文本

时间:2015-05-07 00:59:33

标签: vb.net winforms tabcontrol

我有一个带有组合框的Windows应用程序。 这是我的代码:

Dim TitleVList As New List(Of TitleV_List)


    con = New SqlConnection(connectionString)

    'Fill the UOM Drop Down with all System UOM
    sql = "Select ID, Full_Name FROM cts_TitleV_Leads WHERE IsActive = 1"
    If con.State = ConnectionState.Closed Then
        con.Open()
    End If

    cmd.CommandType = CommandType.Text
    cmd.Connection = con
    cmd.CommandText = sql

    dr = cmd.ExecuteReader




    If dr.HasRows = True Then
        While dr.Read

            TitleVList.Add(New TitleV_List(dr("Full_Name"), dr("ID")))

        End While
    End If

    If con.State = ConnectionState.Open Then
        con.Close()
        dr.Close()
    End If




    ddlpropTitleVlist.DataSource = TitleVList

    ddlpropTitleVlist.DisplayMember = "Full_Name"
    ddlpropTitleVlist.ValueMember = "ID"

我想要的是,当第一次显示组合框时,它会将“选择项目”显示为所选文本,但是当他们点击下拉箭头时,“选择项目”不会显示在列表中。 我试过了

ddlpropTitleVlist.SelectedText =“选择项目”

ddlpropTitleVlist.Text =“选择项目”

但是当屏幕显示show不显示“Select Item”时,它会显示列表中的第一个名字。 我有一个tabcontrol,我正在使用TabControl_DrawItem,因为我的标签是水平的。我不知道这是否与此无关。

请帮忙。

谢谢 马特

1 个答案:

答案 0 :(得分:0)

考虑:

Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
    ComboBox1.SelectedIndex = 0
    ComboBox1.SelectedIndex = -1
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    If ComboBox1.SelectedIndex = -1 Then
        ComboBox1.Text = "Select Item"
    End If
End Sub

我们的想法是,在设计时,您可以在ComboBox项目集合中添加所需的任何选项。在运行时,在Form.Activated事件中(Form.Load也应该工作),ComboBox的SelectedIndex属性设置为-1。在ComboBox的SelectedIndexChanged事件中,如果索引为-1,则将Text属性设置为占位符文本。请注意,为了使其工作(至少在我的系统上),我必须将SelectedIndex设置为零,然后再将其设置为-1。