我有一个带有组合框的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,因为我的标签是水平的。我不知道这是否与此无关。
请帮忙。
谢谢 马特
答案 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。