Vb.net 当下拉样式设置为";时,如何使用默认值设置Combox;下拉列表

Vb.net 当下拉样式设置为";时,如何使用默认值设置Combox;下拉列表,vb.net,combobox,Vb.net,Combobox,我使用的是VisualStudio2019,我一直在尝试让我的组合框使用数据库中的记录设置默认值。我将下拉样式设置为“下拉列表”,这是我正在使用的代码 首先,我将列表框从状态数据表加载到组合框中 Private Sub frmABS3_Shown(sender As Object, e As EventArgs) Handles Me.Shown modABS.clsABS.ExecQuery("SELECT * FROM tblABSStates") If No

我使用的是VisualStudio2019,我一直在尝试让我的组合框使用数据库中的记录设置默认值。我将下拉样式设置为“下拉列表”,这是我正在使用的代码

首先,我将列表框从状态数据表加载到组合框中

Private Sub frmABS3_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        modABS.clsABS.ExecQuery("SELECT * FROM tblABSStates")
        If Not String.IsNullOrEmpty(modABS.clsABS.Exception) Then MsgBox(modABS.clsABS.Exception) : Exit Sub

        For Each r As DataRow In modABS.clsABS.DBDT.Rows
            cboState.Items.Add(r("StateAbbrev"))
        Next
End Sub
接下来,我将填充表单上的字段。这就是我遇到的问题

Private Sub GetRecord()
        ' Fail if No Records Found or position is out of Range
        If modABS.clsABS.DBDT.Rows.Count < 1 OrElse CurrentRecord > modABS.clsABS.DBDT.Rows.Count - 1 Then Exit Sub

        'Return first user found
        Dim r As DataRow = modABS.clsABS.DBDT.Rows(CurrentRecord)

        'Populate Fields
        cboState.Text = r("StateAbbrev").ToString
        txtCity.Text = r("City").ToString
End Sub
Private子GetRecord()
'如果未找到记录或位置超出范围,则失败
如果modABS.clsABS.DBDT.Rows.Count<1或lse CurrentRecord>modABS.clsABS.DBDT.Rows.Count-1,则退出Sub
'返回找到的第一个用户
尺寸r作为数据行=modABS.clsABS.DBDT.Rows(CurrentRecord)
'填充字段
cboState.Text=r(“StateAbbrev”).ToString
Text=r(“城市”).ToString
端接头

当我运行代码时,组合框不会显示状态abbrev,并且列表中没有选择该项。当我将下拉样式设置重置为“Drop Down”时,它的工作方式与设想的相同,但是我不希望用户能够添加组合列表框中没有的值。

此代码需要在表单加载事件中,而不是表单显示事件中:

Private Sub frmABS3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    modABS.clsABS.ExecQuery("SELECT * FROM tblABSStates")
    If Not String.IsNullOrEmpty(modABS.clsABS.Exception) Then MsgBox(modABS.clsABS.Exception) : Exit Sub

    For Each r As DataRow In modABS.clsABS.DBDT.Rows
        cboState.Items.Add(r("StateAbbrev"))
    Next
    txtZipCode.Text = modABS.clsABS.ZipCode
End Sub

尝试
SelectedItem
属性而不是Text属性。我尝试了cboState.SelectedItem=r(“StateAbbrev”)。ToString仍然没有选择:(对我有效。你确定你在
r(“StateAbbrev”)
中有值吗?你检查了
r(“StateAbbrev”).ToString()当时包含的内容了吗(当然,在设置
.SelectedItem
属性之前)?
r(“StateAbbrev”)
实际上是字符串类型的列还是其他类型的列?我用一个变量测试了该值,r(“StateAbbrev”)返回“MI”(密歇根)。我尝试使用变量而不是字段引用。它仍然没有显示。