vb.net - combo box always select the first value

被刻印的时光 ゝ 提交于 2019-12-25 03:44:22

问题


Good day, Can anyone help me with this problem. I have two a combo box for months(01-12) for monthstart and monthend. Now, everytime I select October(10), the value it show is 01. Sorry. I am new in vb.

Is there any alternative way to do this? Any suggestions?

Thanks.

 Private Sub ValueComboxformonth()
    Dim comboSource As New Dictionary(Of String, String)()
    comboSource.Add("01", "January")
    comboSource.Add("02", "February")
    comboSource.Add("03", "March")
    comboSource.Add("04", "April")
    comboSource.Add("05", "May")
    comboSource.Add("06", "June")
    comboSource.Add("07", "July")
    comboSource.Add("08", "August")
    comboSource.Add("09", "September")
    comboSource.Add("10", "October")
    comboSource.Add("11", "November")
    comboSource.Add("12", "December")

    cmbAppliedMonthStart.DataSource = New BindingSource(comboSource, Nothing)
    cmbAppliedMonthStart.DisplayMember = "Value"
    cmbAppliedMonthStart.ValueMember = "Key"

    cmbAppliedMonthEnd.DataSource = New BindingSource(comboSource, Nothing)
    cmbAppliedMonthEnd.DisplayMember = "Value"
    cmbAppliedMonthEnd.ValueMember = "Key"

End Sub


 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    ValueComboxformonth()
    Dim monthkeystart As String = DirectCast(cmbAppliedMonthStart.SelectedItem, KeyValuePair(Of String, String)).Key
    Dim monthvaluestart As String = DirectCast(cmbAppliedMonthStart.SelectedItem, KeyValuePair(Of String, String)).Value

    Dim monthkeyend As String = DirectCast(cmbAppliedMonthEnd.SelectedItem, KeyValuePair(Of String, String)).Key
    Dim monthvalueend As String = DirectCast(cmbAppliedMonthEnd.SelectedItem, KeyValuePair(Of String, String)).Value
End Sub

The value of monthkeystart is 01
The value of monthvaluestart is January


回答1:


This is due to you calling the ValueComboxformonth method before reading the values. That method resets the datasource for the combo-boxes, and it defaults to the first value.

Try moving that call to the constructor (New method) of the form.

Public Sub New()
    ...
    ValueComboxformonth()
End Sub


来源:https://stackoverflow.com/questions/34207453/vb-net-combo-box-always-select-the-first-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!