【问题标题】:Context Menu Resets ComboBox's SelectedIndex上下文菜单重置 ComboBox 的 SelectedIndex
【发布时间】:2008-09-08 20:15:09
【问题描述】:

我有一个 ContextMenu,它在用户右键单击 ComboBox 后显示。当用户在上下文菜单中选择一个项目时,会使用ShowDialog() 方法调出一个表单。

If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    LoadComboBoxes()
End If

当该表单关闭时,我会刷新父表单上 ComboBoxes 中的所有数据。但是,当发生这种情况时,打开 ContextMenu 的 ComboBox 将重置为具有 -1 的选定索引,但其他 ComboBoxes 的其他选定索引保持不变。

如何防止打开上下文菜单的 ComboBox 被重置?

【问题讨论】:

    标签: .net winforms combobox contextmenu selectedindex


    【解决方案1】:

    处理此问题的一种方法是使用上下文菜单的 Popup 事件来获取启动菜单的组合框的选定索引。当对话框关闭时,重置选定的索引。

    【讨论】:

      【解决方案2】:

      我想通了。

      我创建了一个通过引用传递 ContextMenu.SourceControl() 属性的方法,因此我可以操作调用 ContextMenu 的控件。在方法的开头,我得到了 ComboBox 的 SelectedValue 并重新加载了 ComboBoxes 中的数据。然后我将 SelectedValue 设置为我在方法开始时获得的值。

      感谢 DaveK 为我指明了正确的方向。

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-04
        • 2016-09-25
        • 1970-01-01
        相关资源
        最近更新 更多