C#入门学习-----菜单应用(添加剂快捷方式、设置菜单项是否可用、修改菜单字体、创建级联菜单、级联菜单的动态合并)

欢迎大家提出意见,一起讨论!

转载请标明是引用于 http://blog.csdn.net/chenyujing1234

需要源码请与我联系。

 

1、 为菜单添加快捷方式

 为菜单项设置快捷方式非常简单,设置菜单项的Text属性时,在菜单项文本添加“&”+“字母”即可

使用快捷键时,按下Atl键加指定的字母便可以使用快捷键激活菜单项。

 

设计过程:

在窗口中添加MenuScrip控件。

主要代码如下:

 private void 退出QToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("退出应用程序","提示!");
            Close();//退出应用程序
        }

        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("已经点击\"打开\"菜单项", "提示!");
        }

2、 设置菜单项是否可用

 

菜单可以添加多个菜单项,而菜单项还可以含有多个子菜单项,如果需要禁用菜单中的一部分子菜单要怎么实现呢?

2、1  知识要点

用到了ToolScripMenuItem菜单项Enabled属性。

实现过程:

添加两个按钮:启用菜单项、禁用菜单项。

代码实现为:

 private void button1_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem P_ToolStripMenuItem =//得到菜单项
               (ToolStripMenuItem)menuStrip1.Items[0];
            foreach (ToolStripMenuItem item in
                P_ToolStripMenuItem.DropDownItems)
            {
                item.Enabled = true;//启用菜单项
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem P_ToolStripMenuItem =//得到菜单项
   (ToolStripMenuItem)menuStrip1.Items[0];
            foreach (ToolStripMenuItem item in
                P_ToolStripMenuItem.DropDownItems)
            {
                item.Enabled = false;//停用菜单项
            }
        }
3、 将菜单项的字体设置为粗体

弹出菜单项可以包含多个菜单项,可能需要着重地显示某些菜单项,那么将字体设置为粗体是不错选择。

3、1 知识点

用到了ToolSctripItem菜单项的Font属性,用来设置菜单项文本内容的字体。

3、2 实现过程

添加一个按钮,用于设置菜单项中字体为粗体

 

4、 创建级联菜单

4、1  知识点

用到了DropDownItems菜单项集合的Add方法, 用于将指定的菜单项添加到菜单项集合。

4、2  实现过程

程序主要代码为:

 private void Form1_Load(object sender, EventArgs e)
        {
            ToolStripMenuItem P_ts = (ToolStripMenuItem)menuStrip1.Items[0];// 得到文件菜单项
            ToolStripMenuItem ts1 = new ToolStripMenuItem("打开文本文件");  // 创建菜单项
            ToolStripMenuItem ts2 = new ToolStripMenuItem("打开XML文件");  // 创建菜单项
            ToolStripMenuItem ts3 = new ToolStripMenuItem("打开JPG文件");  // 创建菜单项
            ToolStripMenuItem ts4 = new ToolStripMenuItem("打开BMP文件");  // 创建菜单项

            ToolStripMenuItem P_ts2 = (ToolStripMenuItem)P_ts.DropDownItems[0]; // 得到子菜单项
            P_ts2.DropDownItems.Add(ts1);                                  // 添加菜单项
            P_ts2.DropDownItems.Add(ts2);                                  // 添加菜单项
            P_ts2.DropDownItems.Add(ts3);                                  // 添加菜单项
            P_ts2.DropDownItems.Add(ts4);                                  // 添加菜单项


        }


 

5、 级联菜单的动态合并

 

在MDI应用程序中,当MDI子窗体最大化时,子窗体和主窗体的菜单能够自动地合并。这是怎么实现的呢?

5、1  知识点

用到了ContextMenuStrip 控件中Items集合的AddRange方法。

用于将ToolStripItem控件的数据添加到菜单集合中。

实现过程:

设置窗体的IsMdiContainer属性为true,将窗体设置为多文档窗体;

向窗体中添加一个MenuStrip控件和一个ContextMenuStrip控件,分别用于显示菜单和窗体右键菜单。

注: 在窗体中绑定ContextMenuStrip控件时得为窗体的属性“ContextMenuStrip”选择contextMenuStrip1

相关代码:

 

 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 = 0; i < f.contextMenuStrip2.Items.Count; )//遍历窗体菜单项集合
            {
                item.DropDownItems.Add(//添加菜单项
                    f.contextMenuStrip2.Items[i]);
            }
            this.contextMenuStrip1.Items.AddRange(//向主窗体中添加菜单项集合
                new System.Windows.Forms.ToolStripItem[] {
            item});
        }


  

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值