我有两种形式,一种是frmMain,另一种是frmDatasets。想法是frmDatasets用于管理应用程序的数据集(它是用于比较排序算法的程序)。 我在frmDatasets上有一些带有几个项目的MenuStrip。我刚刚决定将Add Dataset项更改为一个下拉菜单,其中包含从文件加载一个或根据某些参数生成一个的选项。一切都很好;只需添加项目,交换一些图标,然后更改事件处理程序的签名以处理右键单击事件。
除了我运行程序时,第一次单击Add Datasets顶级项目会将frmDatasets发送到后面,显示一个非活动的frmMain。再次单击该项目会像往常一样显示下拉菜单。
如果我改为点击另一个顶级菜单项,那就可以了。但是,只需将鼠标悬停在“添加数据集”项上,就会导致“发送回”事件发生。
我说“发送回来”,但它真的只是把它放在frmMain之后。它仍然在Visual Studio和Firefox等其他窗口的前面。
任何人都知道这张表格在地球上发生了什么?
编辑:如果我将frmDatasets显示为模态对话框,它会停止整个“发送回”的事情,但我仍然必须在显示列表之前单击菜单项两次。
EDIT2:覆盖onClick事件以调用mnuAddDatasetDropDown.ShowDropDown会删除双击问题,但如果我将表单保留为模式对话框,则它只是一个解决方案。仍然被送回去。覆盖mouseEnter无法解决问题。
答案 0 :(得分:0)
将frmDatasets的TopMost属性从其Design视图设置为'true'修复了我遇到的所有问题。不幸的是,没有人知道发生了什么,但如果其他人遇到这个问题,那么希望它也能为他们工作。