c#菜单动态合并
2024-09-01 15:32:15
说明
在程序中经常使用弹出菜单,并且一个窗体中可以存在多个弹出菜单。开发过MDI窗体的读者可能都知道,当MDI子窗体最大化时,子窗体和主窗体的菜单能够自动的合并。这是如何实现的呢?本例实现了将两个弹出菜单动态的合并成一个弹出菜单的功能。实例效果如图1.2所示。
要点
C# 2.0中已经将弹出菜单封装为Context MenuStrip控件,利用该控件中的Items对象可以操作菜单中的菜单项。该对象是ToolStripMenuItem类型,使用Items.AddRange( )方法可以向弹出菜单中添加菜单项,该方法原型如下。
public void AddRange (
ToolStripItem[] toolStripItems
)
参数说明如下。
l toolStripItems:控件的数组。
过程
(1)创建一个项目,将其命名为Ex01_02,默认窗体为Form1。
(2)从工具箱中向Form1窗体添加一个MenuStrip控件用来设计菜单;同时向窗体添加ContextMenuStrip控件用来设计右键菜单;选中MenuStrip控件创建一个“打开子窗体”主菜单,然后选中ContextMenuStrip控件为其添加子项。
(3)为程序添加一个窗体,默认名为Form2,同时向窗体添加ContextMenuStrip控件用来设计右键菜单,然后选中ContextMenuStrip控件为其添加子项。
private void 打开自窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.MdiParent = this;
f.Show();//显示子窗体
f.Resize += new EventHandler(f_Resize);
}
void f_Resize(object sender, EventArgs e)
{
Form2 f = (Form2)sender;
ToolStripMenuItem item = new ToolStripMenuItem();
for (int i = ; i < f.contextMenuStrip2.Items.Count; )//合并菜单
{
item.DropDownItems.Add(f.contextMenuStrip2.Items[i]);
}
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
item});
}
最新文章
- @Column
- taginput ,complete使用笔记
- Fiddler+Jmeter+断言详细教程
- POJ 1947 Rebuilding Roads 树形DP
- H5实现俄罗斯方块(四)
- 没玩过这些微信小游戏你就out了
- 如何查看mysql版本
- (译) 强化学习 第一部分:Q-Learning 以及相关探索
- 如何利用百度地图JSAPI画带箭头的线?
- 第二章 使用JavaScript
- C#_Stopwatch 类
- WinForm 进程和线程
- MVC修改文件上传大小问题
- 【Alpha】第三次Daily Scrum Meeting
- 【转】shell学习笔记(七)——流程控制之while
- LabVIEW(四):数据存储和文件IO
- POJ 2672 Tarjan + 缩点 + 拓扑思想
- 【Shell】30分钟关闭Tcpdump,开启Tcpdump、检测目录大小终止任务
- Oracle Blob查询和插入
- la 4490
热门文章
- zipkin+elk微服务日志收集分析系统
- Docker学习之docker常用命令
- [Pandas] 01 - A guy based on NumPy
- 第六届蓝桥杯java b组第一题
- Debezium SQL Server Source Connector+Kafka+Spark+MySQL 实时数据处理
- SSM框架手动实现分页逻辑(非PageHelper)
- 记一次linux Docker网络故障排除经历
- Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程
- gitblit在windows10上的安装及服务启动报错处理
- ECMAScript6 VS TypeScript