.net 上下文菜单重置组合框';s SelectedIndex

.net 上下文菜单重置组合框';s SelectedIndex,.net,winforms,combobox,contextmenu,selectedindex,.net,Winforms,Combobox,Contextmenu,Selectedindex,我有一个上下文菜单,在用户右键单击组合框后显示。当用户在上下文菜单中选择一个项目时,将使用ShowDialog()方法打开一个表单 If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then LoadComboBoxes() End If 当该表单关闭时,我刷新父表单上组合框中的所有数据。但是,当这种情况发生时,打开ContextMenu的组合框将重置为具有-1的选定索引,但其他组合框的其他选定索引保持不变 如

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

If frmOptions.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
    LoadComboBoxes()
End If
当该表单关闭时,我刷新父表单上组合框中的所有数据。但是,当这种情况发生时,打开ContextMenu的组合框将重置为具有-1的选定索引,但其他组合框的其他选定索引保持不变


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

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

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

我已经计算出来了

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

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

我想出来了

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

谢谢你为我指明了正确的方向