C# 实现"左键"单击弹出式菜单

本文介绍了一种在.NET应用程序中使用左键单击触发通常由右键单击激活的ContextMenuStrip的方法。通过简单的代码示例展示了如何绑定按钮单击事件以显示弹出菜单。

 

在开发应用程序时,我们常常需要使用到弹出式菜单。有时候,我们需要用户在单击某个控件时,实现这一功能。

.NET为我们提供了这样一个控件ContextMenuStrip,它可以和其他控件进行绑定,当用户单击该绑定控件时,就弹出对应的菜单。

但是这样做有一个问题,ContextMenuStrip的触发条件是与其绑定的控件被右键单击时。

如果一个应用程序所有的界面操作都是通过左键单击或双击完成的,突然某个控件需要用户改用右键单击。这种情况难免让人有些不爽。

因此有没有一种方法能通过左键单击来触发弹出式菜单呢?答案当然是肯定的。下面我们来说说这个方法:

  1. 首先还是和往常一样,创建一个ContextMenuStrip,取好名字,设置好相关的属性。这里我们将控件命名为ctxMenu
  2. 接下来创建一个用于触发该菜单的控件,可以是任何的控件,这里我们使用一个Button控件命名为btnMenu
  3. 然后就是代码部分了,很简单的一句代码:
     
private void btnMenu_Click(object sender, EventArgs e)
{
  // 参数一为被绑定的控件
// 参数二为弹出式菜单的显示位置(0,0与被绑定控件的原点重合)
  ctxMenu.Show(btnMenu, new Point(0, btnMenu.Height + 5));
}

P.S. 当然这个代码还不是十分的完美,因为现在不论是单击左键还是右键都会显示菜单,大家可以把代码写到控件的鼠标事件中,并对左右键单击作出判断来解决这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值