上下文菜单重置ComboBox的SelectedIndex
时间:2020-03-05 18:49:37 来源:igfitidea点击:
我有一个ContextMenu,在用户右键单击ComboBox后显示。当用户在上下文菜单中选择一个项目时,将使用ShowDialog()方法调出一个表单。
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为我指出正确的方向。