从C#中的控件中删除双击样式

时间:2015-06-22 16:57:59

标签: c# winforms

我有一个PictureBox控件,当我快速点击时,它会在内部生成以下Windows消息:

* WM_LBUTTONDOWN
* WM_LBUTTONUP
* WM_LBUTTONDBLCLK
* WM_LBUTTONUP

有没有办法从控件中删除双击样式,也许在窗体的构造函数中?在Delphi中,我可以使用以下代码执行此操作:

// Prevent TImage from generating OnDblClick event notifications 
btnShift.ControlStyle := (btnShift.ControlStyle - [csDoubleClicks]);

如果不同时处理Click和DoubleClick事件,我将如何在C#中实现相同的目标?

1 个答案:

答案 0 :(得分:1)

覆盖新控件中的默认类样式

using System;
using System.Windows.Forms;

namespace NoDblClickPic
{
    public partial class NoDblClickPicControl : PictureBox
    {
        private const int CS_DBLCLKS = 0x8;

        public NoDblClickPicControl()
        {
        }

        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams cp = base.CreateParams;
                cp.ClassStyle &= ~CS_DBLCLKS;
                return cp;
            }
        }
    }
}