C#程序编写MenuStrip添加多级菜单,并判断不能重复
时间: 2024-02-27 14:58:31 浏览: 185
好的,以下是一个C#程序示例,演示如何实现MenuStrip添加多级菜单,并且判断不能重复:
```csharp
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace MenuStripDemo
{
public partial class MainForm : Form
{
// 用于保存已经添加的菜单名称
private List<string> menuNames = new List<string>();
public MainForm()
{
InitializeComponent();
}
// 点击“添加菜单”按钮时执行的操作
private void addButton_Click(object sender, EventArgs e)
{
// 获取用户输入的菜单名称
string menuName = menuNameTextBox.Text.Trim();
// 检查菜单名称是否合法
if (string.IsNullOrEmpty(menuName))
{
MessageBox.Show("菜单名称不能为空!");
return;
}
if (menuNames.Contains(menuName))
{
MessageBox.Show("不能添加重复的菜单!");
return;
}
// 创建一个新的菜单项
ToolStripMenuItem menuItem = new ToolStripMenuItem(menuName);
// 将菜单项添加到MenuStrip中
if (parentMenuItemComboBox.SelectedIndex >= 0)
{
ToolStripMenuItem parentMenuItem = (ToolStripMenuItem)parentMenuItemComboBox.SelectedItem;
parentMenuItem.DropDownItems.Add(menuItem);
}
else
{
menuStrip1.Items.Add(menuItem);
}
// 将菜单名称添加到已经添加的菜单名称列表中
menuNames.Add(menuName);
// 清空菜单名称输入框
menuNameTextBox.Text = string.Empty;
}
// 窗体加载时执行的操作
private void MainForm_Load(object sender, EventArgs e)
{
// 初始化父菜单下拉框
parentMenuItemComboBox.Items.Add(string.Empty);
parentMenuItemComboBox.Items.AddRange(menuStrip1.Items);
}
}
}
```
在上面的程序中,我们首先定义了一个列表menuNames,用于保存已经添加的菜单名称。当用户点击“添加菜单”按钮时,我们先获取菜单名称,并检查其是否合法和是否已经存在于menuNames列表中。如果菜单名称合法且不重复,我们就创建一个新的ToolStripMenuItem,并将其添加到MenuStrip中。同时,我们还需要将该菜单名称添加到menuNames列表中,以便后续判断是否重复。最后,我们清空菜单名称输入框,等待下一次输入。
希望这个示例能够对您有所帮助!
阅读全文