上下文菜单重置ComboBox的SelectedIndex

时间:2008-09-08 20:15:10

标签: .net winforms combobox contextmenu selectedindex

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我明白了。

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

感谢DaveK指出我正确的方向。