C#Windows窗体设计之ContextMenuStrip(鼠标右击菜单)的用法

摘要:Winform开发进阶之ContextMenuStrip,以自身开发经验讲解ContextMenuStrip的具体用法。

编程语言:C#

编程环境:Visual Studio 2019

问题描述

        有没有人跟小编一样,想给控件加入鼠标右击菜单,但点到属性框发现......

        Oh我的天,这居然是无,那到底要怎样添加鼠标右击菜单呢?小编摸索着,总结出来两种添加方法。

方法一:通过工具箱ContextMenuStrip控件添加

        首先,小编纠结了一下为什么是无,想着,是不是当前没有这样的控件可供选择,于是去工具箱找了找。果不其然,您猜怎么着。

        应该就是它了,迫不及待地拖了一个出来,编辑好。

 

        然后,这时我再去点击原来显示无的地方。

 

        Nice!点击添加contextMenuStrip1,运行一下看看是否有效果。 

        成功! 这样就可以随意将右击菜单添加到想添加的控件上啦。

方法二:通过写代码添加

        其实小编第一次用的时候是自己写代码导入的,当时想着所有控件都能写代码来添加,ContextMenuStrip也不例外。还是这个项目工程,添加一个按钮button1,通过写代码对它添加右击菜单,将如下代码写入Form1的构造函数。

public Form1()
        {
            InitializeComponent();

            ContextMenuStrip contextMenuStrip = new ContextMenuStrip();//创建一个鼠标右击菜单

            /*添加项*/
            contextMenuStrip.Items.Add("我");
            contextMenuStrip.Items.Add("很");
            contextMenuStrip.Items.Add("强");

            button1.ContextMenuStrip = contextMenuStrip;//右击菜单添加到按钮button1
        }

        运行看看效果。

        同样完美嘿嘿。

小结 

        本文讲了鼠标右击菜单ContextMenuStrip的创建和添加方式,至于点击项执行所需要的功能,跟普通按钮控件一样,注册鼠标单击Click事件,写入功能到事件方法体即可。

每篇寄语

        最困难之时,就是我们离成功不远之日。

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
您可以通过以下步骤实现: 1. 在DataGridView控件的ContextMenuStrip属性中添加一个右键菜单。 2. 在右键菜单中添加一个菜单项,并设置其Click事件,如下所示: ``` private void menuItem_Click(object sender, EventArgs e) { // 获取选中的行 DataGridViewRow selectedRow = dataGridView1.SelectedRows[0]; // 获取选中行的数据 string data = selectedRow.Cells[0].Value.ToString(); // 跳转到新窗体 Form2 form2 = new Form2(data); form2.Show(); } ``` 3. 在菜单项的Click事件中,获取选中的行的数据,然后跳转到新的窗体。 完整代码示例: ``` private void dataGridView1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { // 在右键菜单中添加一个菜单ContextMenuStrip menu = new ContextMenuStrip(); ToolStripMenuItem menuItem = new ToolStripMenuItem("跳转到新窗体"); menuItem.Click += new EventHandler(menuItem_Click); menu.Items.Add(menuItem); // 设置右键菜单 dataGridView1.ContextMenuStrip = menu; } } private void menuItem_Click(object sender, EventArgs e) { // 获取选中的行 DataGridViewRow selectedRow = dataGridView1.SelectedRows[0]; // 获取选中行的数据 string data = selectedRow.Cells[0].Value.ToString(); // 跳转到新窗体 Form2 form2 = new Form2(data); form2.Show(); } ``` 注意:在跳转到新窗体时,可以将选中行的数据作为参数传递给新窗体。在新窗体中,可以根据传递的数据进行相应的处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

To be better now

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值