• 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,具体怎么使用,见我的博文。

  • 相关阅读:
    htpasswd命令
    GitHub访问速度慢的解决方法
    easyui datagrid 首次不加载做法
    Excel日常操作
    补偿接口中循环一直执行sql的问题
    rabbitMq无法消费发送的q的问题
    Unicode与中文转换工具类方法(转)
    idea 一些插件配置
    线程安全的集合类、CopyOnWrite机制介绍(转)
    java websocket学习
  • 原文地址:https://www.cnblogs.com/hdwang/p/3945858.html
Copyright © 2020-2023  润新知