我有两种形式,一种是 frmMain,另一种是 frmDatasets。这个想法是 frmDatasets 用于管理应用程序的数据集(它是一个用于比较排序算法的程序)。我在 frmDatasets 上有一个带有一些项目的 MenuStrip。我刚刚决定将添加数据集项目更改为一个下拉菜单,其中包含从文件加载一个或根据某些参数生成一个的选项。一切顺利;只需添加项目,交换一些图标,并更改事件处理程序的签名以处理右键单击事件。
除了当我运行程序时,第一次单击 Add Datasets 顶级项会将 frmDatasets 发送到后面,显示一个非活动的 frmMain。再次单击该项目将照常显示下拉菜单。
如果我改为单击另一个顶级菜单项,则效果很好。但是,只需将鼠标悬停在“添加数据集”项上,就会发生“发送回”的事情。
我说“发送到后面”,但实际上只是将它放在 frmMain 后面。它仍然位于 Visual Studio 和 Firefox 等其他窗口的前面。
有谁知道这个表格到底是怎么回事?
编辑:如果我将 frmDatasets 显示为模式对话框,它会停止整个“发送到后面”的事情,但我仍然必须单击菜单项两次才能显示列表。
EDIT2:覆盖 onClick 事件以调用 mnuAddDatasetDropDown.ShowDropDown 消除了双击问题,但如果我将表单保留为模式对话框,这只是一个解决方案。仍然被送回。覆盖 mouseEnter 并没有做任何事情来解决它。