UserControl的单击事件对鼠标左右键都有效,怎样使之像按钮控件那样只对鼠标左键敏感?
2006-06-07 05:08
387 查看
UserControl的单击事件对鼠标左右键都有效,怎样使之像按钮控件那样只对鼠标左键敏感?
经过反复推敲将这篇文章内容中的程序部分进行了改进,请看“(改进)UserControl的单击事件对鼠标左右键都有效,怎样使之像按钮控件那样只对鼠标左键敏感?”
在这个改进的版本里,直接重写了OnMouseUp方法,并且在其中加入了至关重要的判断内容。不仅如此,还加入了MouseClick事件,类似于.net 2005中的MouseClick事件。
首先,来看一下我想要的单击事件是什么样的:
鼠标左键被按下
鼠标左键被抬起
鼠标在此期间没有移动
这就是我所要的单击。至于实现,请看下文:
private bool _isClick = false;//标记控件是否被单击
/// <summary>
///左键被按下
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClickDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
this._isClick = true;
}
else
{
this._isClick = false;
}
}
/// <summary>
/// 左键抬起
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClickUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left & this._isClick == true)
{
this._isClick == false
//写一些程序在这,这里就是处理单击的地方;或者干脆弄个事件出来,也是个相当不错的选择。
}
}
/// <summary>
/// 单击取消
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClickCancel(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left & this._isClick == true)
{
this._isClick = false;
}
}
经过反复推敲将这篇文章内容中的程序部分进行了改进,请看“(改进)UserControl的单击事件对鼠标左右键都有效,怎样使之像按钮控件那样只对鼠标左键敏感?”
在这个改进的版本里,直接重写了OnMouseUp方法,并且在其中加入了至关重要的判断内容。不仅如此,还加入了MouseClick事件,类似于.net 2005中的MouseClick事件。
首先,来看一下我想要的单击事件是什么样的:
鼠标左键被按下
鼠标左键被抬起
鼠标在此期间没有移动
这就是我所要的单击。至于实现,请看下文:
private bool _isClick = false;//标记控件是否被单击
/// <summary>
///左键被按下
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClickDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left)
{
this._isClick = true;
}
else
{
this._isClick = false;
}
}
/// <summary>
/// 左键抬起
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClickUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left & this._isClick == true)
{
this._isClick == false
//写一些程序在这,这里就是处理单击的地方;或者干脆弄个事件出来,也是个相当不错的选择。
}
}
/// <summary>
/// 单击取消
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ClickCancel(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Left & this._isClick == true)
{
this._isClick = false;
}
}
相关文章推荐
- (改进)UserControl的单击事件对鼠标左右键都有效,怎样使之像按钮控件那样只对鼠标左键敏感?
- JavaGUI事件编程时,如何判断鼠标单击的是哪个按钮?
- C#学习笔记(20140909)-按钮控件:单击事件和command事件
- GridView控件模板列中的按钮单击时,在RowDataBound事件中获取该行行号
- 老土但有效的刷百度空间人气不被封的方法(C#实现操纵鼠标事件,单击、移动、滚轮)
- WinForm中,Button按钮有PerformClick()方法,可以模拟用户单击鼠标. 即button.PerformClick()生成按钮的事件。
- Android如何让ListView的子组件按钮响应单击事件并修改该项子控件内容
- VC中CTreeCtrl控件单击事件,如何判断是单击的是某项的按钮,还是单击的文字
- 让一个按钮自动触发,自动执行onclick鼠标单击事件. 默认已点击.
- GridView控件(六)—数据行响应鼠标的单击和双击事件
- DevExpress NavBarControl控件鼠标左键单击Group实现Expanded(NavBarGroup触发展开或者折叠事件?)
- 怎样写这样一个事件,让一个按钮对应一个滚板,单击按钮显示对应的滚板
- QT重写控件函数并添加鼠标单击事件
- MFC 通过发送消息完成按钮操作模拟鼠标单击事件的发生的问题
- document.ready 与 updatepanel 害死人(Jquery插件失效,Autocomplate事件失效,Jquery事件第一次有效,单击按钮后就时效)
- jquery 验证文本框数字事件|有效|快捷 给控件绑定清楚非数字事件
- js鼠标单击和双击事件冲突问题的解决方法
- 怎样在文本框输入文字后,按回车触发相应按钮事件???
- JS触发服务器控件的单击事件(详解)
- 模拟按钮控件BN_CLICKED消息事件