我在使用 MenuStrip 时遇到了一些非常奇怪的行为:
- 创建一个新的 WinForms 项目(.net 4.0。C# 或 VB.NET 无关紧要;我使用的是 C#)。
- 将 a
MenuStrip
放在默认表单上。右键单击并选择插入标准项目以快速为您构建它。此步骤也可以手动完成。 OpenFileDialog
在您的表格上也放一个。DropDownItemClicked
为文件菜单的事件添加事件处理程序。将以下代码添加到其中:private void fileToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem.Name == "openToolStripMenuItem") { if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) MessageBox.Show(openFileDialog1.FileName); } }
运行项目。单击文件菜单,然后单击打开命令。文件对话框出现但是,文件菜单并没有消失。事实上,它在 之上绘制
OpenFileDialog
,隐藏了它的一部分。在对话框中单击“打开”或“取消”后,对话框和“文件”菜单都将消失。
为什么会这样?这是一个已知的错误或功能吗?我还检查了我的对话框不会发生这种情况,仅适用于内置对话框。您必须FileToolStripMenuItem.HideDropDown()
在显示内置对话框之前手动调用。