• 程序功能:在窗口中添加菜单条,在菜单条中添加菜单,并在菜单中添加菜单项和子菜单。通过选择菜单项可以引发不同的事件,从而执行不同操作,例如点击“打开”菜单项可以打开一个“打开文件对话框”。
时间: 2024-03-14 21:43:07 浏览: 103
Qt中QTreeview目录树添加案例 实现右键菜单在Qt树形视图中添加子项功能的实例详解
以下是一个实现上述功能的简单示例代码:
```csharp
using System;
using System.Windows.Forms;
namespace MenuDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitializeMenu();
}
private void InitializeMenu()
{
// 添加菜单条
MenuStrip menuStrip = new MenuStrip();
this.Controls.Add(menuStrip);
// 添加主菜单
ToolStripMenuItem fileMenu = new ToolStripMenuItem("文件(&F)");
menuStrip.Items.Add(fileMenu);
// 添加子菜单项
ToolStripMenuItem openMenuItem = new ToolStripMenuItem("打开(&O)");
openMenuItem.ShortcutKeys = Keys.Control | Keys.O; // 设置快捷键
openMenuItem.Click += new EventHandler(OpenMenuItem_Click);
fileMenu.DropDownItems.Add(openMenuItem);
ToolStripMenuItem saveMenuItem = new ToolStripMenuItem("保存(&S)");
saveMenuItem.ShortcutKeys = Keys.Control | Keys.S;
saveMenuItem.Click += new EventHandler(SaveMenuItem_Click);
fileMenu.DropDownItems.Add(saveMenuItem);
// 添加分隔符
fileMenu.DropDownItems.Add(new ToolStripSeparator());
// 添加子菜单
ToolStripMenuItem recentFilesMenu = new ToolStripMenuItem("最近打开的文件");
fileMenu.DropDownItems.Add(recentFilesMenu);
ToolStripMenuItem file1MenuItem = new ToolStripMenuItem("文件1");
file1MenuItem.Click += new EventHandler(File1MenuItem_Click);
recentFilesMenu.DropDownItems.Add(file1MenuItem);
ToolStripMenuItem file2MenuItem = new ToolStripMenuItem("文件2");
file2MenuItem.Click += new EventHandler(File2MenuItem_Click);
recentFilesMenu.DropDownItems.Add(file2MenuItem);
}
private void OpenMenuItem_Click(object sender, EventArgs e)
{
// 打开文件对话框
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// 处理打开文件
// ...
}
}
private void SaveMenuItem_Click(object sender, EventArgs e)
{
// 保存文件对话框
SaveFileDialog saveFileDialog = new SaveFileDialog();
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// 处理保存文件
// ...
}
}
private void File1MenuItem_Click(object sender, EventArgs e)
{
// 打开最近打开的文件1
// ...
}
private void File2MenuItem_Click(object sender, EventArgs e)
{
// 打开最近打开的文件2
// ...
}
}
}
```
在此示例中,我们创建了一个名为“文件”的菜单,其中包含“打开”和“保存”菜单项,以及一个名为“最近打开的文件”的子菜单,其中包含“文件1”和“文件2”菜单项。我们使用`Click`事件处理程序方法来处理菜单项的单击事件,并在菜单项中添加了快捷键以方便用户操作。在`OpenMenuItem_Click`和`SaveMenuItem_Click`事件处理程序方法中,我们使用`OpenFileDialog`和`SaveFileDialog`对话框来打开和保存文件。
阅读全文