1

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

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

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

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

4

2 回答 2

1

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

于 2008-09-08T20:27:30.137 回答
0

我想到了。

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

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

于 2008-09-08T20:48:39.417 回答