关于.net:上下文菜单重置ComboBox的SelectedIndex

关于.net:上下文菜单重置ComboBox的SelectedIndex

Context Menu Resets ComboBox's SelectedIndex

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

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

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

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


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


我想到了。

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

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


推荐阅读