如何给按钮添加 mouseDown 和mouseUp 事件

时间:2022-10-10 10:15:45
用C# 写俄罗斯方块,发现在ce的环境下 按钮没有mouseDown和mouseUp事件
自己写个控件 ,发现也不触发mouseDown和mouseUp事件,只触发Click事件,求真相

namespace ELSFK
{
    public partial class MButton : Button
    {
        public MButton()
        {
            InitializeComponent();
        }

        public MButton(IContainer container)
        {
            container.Add(this);
            InitializeComponent();
        }

        public delegate void MouseEventHandler(Object sender, MouseEventArgs e);
        public event MouseEventHandler MMouseUp;
        public event MouseEventHandler MMouseDown;

        public delegate void EventHandler(Object sender, EventArgs e);
        public event EventHandler MMouseClick;

        protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);
            if (MMouseClick != null)
            {
                MMouseClick(this, e);
            }
        }

        protected override void OnMouseUp(MouseEventArgs e)
        {
            base.OnMouseUp(e);
            if (MMouseUp != null)
            {
                MMouseUp(this, e);
            }
        }
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            if (MMouseDown != null)
            {
                MMouseDown(this, e);
            }
        }

    }
}
嵌入式WINCE,刚接触,需要按钮的mouseDown和mouseUp事件

6 个解决方案

#1


这个就难了。。。。

#2


嵌入式WINCE,刚接触,需要按钮的mouseDown和mouseUp事件
--->WINCE下面不支持按钮的mouseDown和mouseUp事件,这可能需要楼主自己去实现了,这应该需要熟悉触摸屏驱动,相关链接:http://www.cnblogs.com/beer/archive/2010/12/08/1900540.html

#3


自己实现一个类似的按键,直接在窗体上绘制

#4


不用系统的标准控件,处理WM_LBUTTONDOWN和WM_LBUTTONUP就行了。

#5


在Wince下,鼠标的压下以及弹起会触发WM_LBUTTONDOWN和WM_LBUTTONUP消息,并且会传递给顶层窗口。但是使用C#编写的Winform如何捕捉这两个消息我不大知道。

#6


我觉得api应该可行,用别的控件代替按钮也不错,不知道wince中的button为什么不加,但我发现别的控件有这俩事件,比如panel,
结贴散分,新年快乐

#1


这个就难了。。。。

#2


嵌入式WINCE,刚接触,需要按钮的mouseDown和mouseUp事件
--->WINCE下面不支持按钮的mouseDown和mouseUp事件,这可能需要楼主自己去实现了,这应该需要熟悉触摸屏驱动,相关链接:http://www.cnblogs.com/beer/archive/2010/12/08/1900540.html

#3


自己实现一个类似的按键,直接在窗体上绘制

#4


不用系统的标准控件,处理WM_LBUTTONDOWN和WM_LBUTTONUP就行了。

#5


在Wince下,鼠标的压下以及弹起会触发WM_LBUTTONDOWN和WM_LBUTTONUP消息,并且会传递给顶层窗口。但是使用C#编写的Winform如何捕捉这两个消息我不大知道。

#6


我觉得api应该可行,用别的控件代替按钮也不错,不知道wince中的button为什么不加,但我发现别的控件有这俩事件,比如panel,
结贴散分,新年快乐