我有一个ContextMenu,在用户右键单击ComboBox后显示。当用户在上下文菜单中选择项目时,使用ShowDialog()
方法启动表单。
If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
LoadComboBoxes()
End If
当该表单关闭时,我刷新父表单上的ComboBox中的所有数据。但是,当发生这种情况时,打开ContextMenu的ComboBox将重置为选定索引为-1,但其他ComboBox的其他选定索引保持不变。
如何防止打开上下文菜单的ComboBox被重置?
答案 0 :(得分:1)
处理此问题的一种方法是使用上下文菜单的Popup事件来获取启动菜单的组合框的选定索引。当对话框窗口关闭时,重置所选索引。
答案 1 :(得分:0)
我明白了。
我创建了一个通过引用传递 ContextMenu.SourceControl()属性的方法,因此我可以操作调用ContextMenu的控件。在方法的开头,我得到了ComboBox的 SelectedValue ,并重新加载了ComboBox中的数据。然后我将 SelectedValue 设置为方法开头的值。
感谢DaveK指出我正确的方向。