首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从绑定TableAdapter填充ToolStripComboBox

从绑定TableAdapter填充ToolStripComboBox
EN

Stack Overflow用户
提问于 2013-12-17 10:10:47
回答 1查看 266关注 0票数 1

我正在尝试根据从TableAdapter中选择的内容来填充ToolStripComboBox。首先,我希望通过将ToolStipComboBox绑定到数据源来填充它。然后,一旦它被填充,我想填充TableAdapter。

这是我的密码:

代码语言:javascript
复制
Private Sub ToolStripComboBox_MessageType_Click(sender As Object, e As EventArgs) Handles ToolStripComboBox_MessageType.Click
    Me.ToolStripComboBox_MessageType.ComboBox.DataSource = DataSet_UToolDb.XML_MESSAGE_TYPE
    Me.ToolStripComboBox_MessageType.ComboBox.DisplayMember = "MessageType"
    Me.ToolStripComboBox_MessageType.ComboBox.ValueMember = "MTId"
End Sub

Private Sub ToolStripComboBox_MessageType_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ToolStripComboBox_MessageType.SelectedIndexChanged
    Me.TableAdapter_XML_MESSAGE_STRUCTURE.Fill(DataSet_UToolDb.XML_MESSAGE_STRUCTURE, Me.ToolStripComboBox_MessageType.ComboBox.SelectedValue)
End Sub

由于某种原因(如果我执行我的代码),代码从设置数据源的位置跳到填充TableAdapter的位置。这会导致异常,因为TableAdapter的select查询根据从ToolStipComboBox中选择的值寻找一个值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-18 10:11:20

我怀疑您的代码正在跳到填充TableAdapter的位置,因为通过设置ComboBox的DataSource,您将触发SelectedIndexChanged事件。

因此,您需要告诉SelectedIndexChanged处理程序在尚未填充ToolStripComboBox时返回,这可以通过在填充了ToolStripComboBox时设置一个布尔标志来实现。例如:

代码语言:javascript
复制
Dim m_ToolStripComboBoxPopulated As Boolean

Private Sub ToolStripComboBox_MessageType_Click(sender As Object, e As EventArgs) Handles ToolStripComboBox_MessageType.Click
    Me.m_ToolStripComboBoxPopulated = False
    Me.ToolStripComboBox_MessageType.ComboBox.DataSource = DataSet_UToolDb.XML_MESSAGE_TYPE
    Me.ToolStripComboBox_MessageType.ComboBox.DisplayMember = "MessageType"
    Me.ToolStripComboBox_MessageType.ComboBox.ValueMember = "MTId"
    ' Indicate ToolStripComboBox has been populated
    Me.m_ToolStripComboBoxPopulated = True
End Sub

Private Sub ToolStripComboBox_MessageType_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ToolStripComboBox_MessageType.SelectedIndexChanged
    If (Me.m_ToolStripComboBoxPopulated = False) Then
        Return
    End If
    Me.TableAdapter_XML_MESSAGE_STRUCTURE.Fill(DataSet_UToolDb.XML_MESSAGE_STRUCTURE, Me.ToolStripComboBox_MessageType.ComboBox.SelectedValue)
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20631267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档