说明

在程序中经常使用弹出菜单,并且一个窗体中可以存在多个弹出菜单。开发过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});
}

最新文章

  1. @Column
  2. taginput ,complete使用笔记
  3. Fiddler+Jmeter+断言详细教程
  4. POJ 1947 Rebuilding Roads 树形DP
  5. H5实现俄罗斯方块(四)
  6. 没玩过这些微信小游戏你就out了
  7. 如何查看mysql版本
  8. (译) 强化学习 第一部分:Q-Learning 以及相关探索
  9. 如何利用百度地图JSAPI画带箭头的线?
  10. 第二章 使用JavaScript
  11. C#_Stopwatch 类
  12. WinForm 进程和线程
  13. MVC修改文件上传大小问题
  14. 【Alpha】第三次Daily Scrum Meeting
  15. 【转】shell学习笔记(七)——流程控制之while
  16. LabVIEW(四):数据存储和文件IO
  17. POJ 2672 Tarjan + 缩点 + 拓扑思想
  18. 【Shell】30分钟关闭Tcpdump,开启Tcpdump、检测目录大小终止任务
  19. Oracle Blob查询和插入
  20. la 4490

热门文章

  1. zipkin+elk微服务日志收集分析系统
  2. Docker学习之docker常用命令
  3. [Pandas] 01 - A guy based on NumPy
  4. 第六届蓝桥杯java b组第一题
  5. Debezium SQL Server Source Connector+Kafka+Spark+MySQL 实时数据处理
  6. SSM框架手动实现分页逻辑(非PageHelper)
  7. 记一次linux Docker网络故障排除经历
  8. Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程
  9. gitblit在windows10上的安装及服务启动报错处理
  10. ECMAScript6 VS TypeScript