public partial class ComEdit:Combobox,IMessageFilter
{
public ComEdit()
{
InitializeComponent();
this.SetStyle(ControlStyles.DoubleBuffer, true);
Application.AddMessageFilter(this);
this.MouseEnter += ComEdit_MouseEnter;
this.MouseLeave += ComEdit_MouseLeave;
}
#region 禁用鼠标滚轮事件
///
/// 判断鼠标是否在控件上
///
bool IsFoused { get; set; } = false;
private void ComEdit_MouseLeave(object sender, EventArgs e)
{
IsFoused = false;
}
private void ComEdit_MouseEnter(object sender, EventArgs e)
{
IsFoused = true;
}
public bool PreFilterMessage(ref Message m)
{
if (IsFoused)
{
if (m.Msg == 0x020A)
return true;
return false;
}
return false;
}
#endregion
}
禁用鼠标滚轮事件(对单个下拉控件,不影响其他控件的滚轮事件)
最新推荐文章于 2023-08-24 17:59:27 发布
此篇博客介绍了如何在C#中创建一个名为ComEdit的ComboBox子类,并通过继承 IMessageFilter 实现禁用鼠标滚轮事件。通过`IsFoused`属性判断焦点,仅当焦点在控件上时阻止滚轮事件。
134

被折叠的 条评论
为什么被折叠?



