winform/窗体鼠标事件编程中的几个问题
1.进行.net窗体的开发,经常用到鼠标事件,如MouseDown/MouseUp/MouseMove/MouseClick等。可是有时候给控件添加鼠标事件,就是不响应,怎么办呢!
答案:1.控件是否可见,即不能被子控件遮挡,若已经被遮挡,可以在子控件中将鼠标事件调用父控件的OnMouseMove等方法对父控件的鼠标事件进行重写
2.尝试在MouseEnter事件中将控件设置为输入焦点(Focus试试)
2.MouseDown、MouseMove、MouseUp三个事件是如何响应的?
答案:经测试发现
1.当控件可以响应鼠标事件时,第一次MouseDown/MouseMove事件的产生必须是鼠标作用于控件,鼠标位于控件的可见部分。
2.一旦MouseDown作用于控件后,控件总能响应MouseMove/MouseUp事件,即使鼠标指针不在控件上方甚至离开了窗体。通过这点,你就知道该怎样实现控件改变大小,窗体改变大小等类似的功能了。
3.怎样实现鼠标单双击事件共存?
答案:
鼠标双击事件一定会产生单击事件,所以最好不要单双击共存。必须要使用的话,可以在单击事件中启动一个计时器Timer,捕获双击事件是否发生,在鼠标双击最大时间间隔后仍未发生双击事件则必定为单击事件。所以这样一来,单击事件的判断会很慢,双击事件的判定比较快。
4.鼠标事件的参数 MouseEventArgs中的X/Y是啥意思?
这个X/Y指的是鼠标事件产生的位置,相对于事件源(控件)的位置,X表示距离控件左上顶点的横向坐标,Y表示距离控件左上顶点纵向坐标。
5.怎样用代码触发鼠标事件?
使用windows函数 mouse_event,具体怎么使用,见我的博文。
winform/窗体鼠标事件编程中的几个问题的更多相关文章
- C#窗体--鼠标事件
常见的鼠标事件: mouseclick,mousedown,mouseup,mousuenter,mouseleave.mousemove mouseDown按下鼠标事件: //鼠标按下后显示 pri ...
- [zz]winform 窗体关闭事件
注册窗体关闭事件: 在Form1.Designer.cs 文件中添加: this.FormClosing += new System.Windows.Forms.FormClosingEventHan ...
- Winform 窗体关闭事件
//窗体关闭前事件 private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) { DialogResult res ...
- WinForm窗体键盘事件,支持方向键和回车键
/// <summary> /// 快捷键操作 /// </summary> protected override bool ProcessCmdKey(ref Message ...
- Winform窗体“空闲事件”
Application.Idle += Application_Idle; void Application_Idle(object sender, EventArgs e){ } 当应用程序完成处理 ...
- xBIM 实战04 在WinForm窗体中实现IFC模型的加载与浏览
系列目录 [已更新最新开发文章,点击查看详细] WPF底层使用 DirectX 进行图形渲染.DirectX 能理解可由显卡直接渲染的高层元素,如纹理和渐变,所以 DirectX 效率更高. ...
- Qt事件系统之二:鼠标事件和滚轮事件
在Qt中,事件作为一个对象,继承自 QEvent 类,常见的有键盘事件 QKeyEvent.鼠标事件 QMouseEvent 和定时器事件 QTimerEvent 等,与 QEvent 类的继承关系图 ...
- C#避免WinForm窗体假死
WinForm窗体在使用过程中如果因为程序等待时间太久而导致窗体本身假死无法控制,会严重影响用户的体验,这种情况大多是UI线程被耗时长的代码操作占用所致,可以新开一个线程用来完成耗时长的操作,然后再将 ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块检测键盘事件和鼠标事件
用户可通过键盘输入来操控游戏中角色的运动,取得键盘事件的方法有以下两种 : 常用的按键与键盘常数对应表 : 按下右箭头键,蓝色小球会 向 右移动:按住右箭头键不放 , 球体会快速 向 右移 动, 若到 ...
随机推荐
- N皇后问题
题目描述 在n×n格的棋盘上放置彼此不受攻击的n个皇后.按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子.n后问题等价于再n×n的棋盘上放置n个后,任何2个皇后不妨在同一行或同 ...
- 转载:《TypeScript 中文入门教程》 16、Symbols
版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 至ECMAScript 2015开始,symbol成为了一种新的原始类型,就像n ...
- IT基础架构规划方案三(IT基础软件和系统规划)
IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...
- Tomcat下使用c3p0配置jndi数据源
下载c3p0包: 下载地址:https://sourceforge.net/projects/c3p0/files/?source=navbar 解压后得到包:c3p0-0.9.2.jar,mchan ...
- Manage application.conf in several environments
When you work in a team, different developers will use different configuration keys in theirapplicat ...
- 完美 全兼容 解决 文字两端对齐 justify 中文姓名对齐
text-align:justify; 所有浏览器都支持,text-justify之类的却只有IE支持,就不要考虑了. justify我的理解,使元素内部的子元素两端对齐,子元素当然只能是inline ...
- 纯前端JSON文件编辑器[0]
准备工作 参考资料: FileReader(用来获取上传文件的数据) <download>(用来设置下载文件的名称) Blob(用来存储数据的一个容器) createObjectURL(用 ...
- 开源代码:Http请求封装类库HttpLib介绍、使用说明
今天介绍一个很好用的Http请求类库--Httplib.一直以来,我们都是为了一次web请求,单独写一段代码 有了这个类,我们就可以很方便的直接使用了. 项目介绍: http://www.suchso ...
- HDFS --访问
Hdfs的访问方式有两种,第一:类似linux命令,hadoop shell.第二:java API方式. 先看第一种. FS Shell cat chgrp chmod chown copyFrom ...
- Ubuntu下安装中文输入法
搜狗输入法 for Linux 是基于Fcitx 框架(fcitx-sogoupinyin). 安装环境为Ubuntu 13.04 安装过程: 卸载Ubuntu默认的ibus输入法: sudo apt ...