C# WinForm 怎样给控件添加滚动条事件?
我是想在TreeView拉动滚动条或者点击滚动条上下小按钮时触发事件。它本身是没有这个事件的,我想过在鼠标事件中来判断滚动条是否变动,但是当鼠标在滚动条上操作时既不触发控...
我是想在 TreeView 拉动滚动条或者点击滚动条上下小按钮时触发事件。
它本身是没有这个事件的,我想过在鼠标事件中来判断滚动条是否变动,但是当鼠标在滚动条上操作时既不触发控件的鼠标单击事件也不触发窗体的鼠标单击事件所以无从下手。
鼠标滚轮的情况我已经解决了不用多说。
谢谢了在线等。 展开
它本身是没有这个事件的,我想过在鼠标事件中来判断滚动条是否变动,但是当鼠标在滚动条上操作时既不触发控件的鼠标单击事件也不触发窗体的鼠标单击事件所以无从下手。
鼠标滚轮的情况我已经解决了不用多说。
谢谢了在线等。 展开
1个回答
展开全部
测试了一下,可以使用自定义事件。
public partial class Form1 : Form
{
//定义事件
public event EventHandler HScrollEvent;
public event EventHandler VScrollEvent;
public Form1()
{
InitializeComponent();
//注册事件
this.VScrollEvent += delegate
{
{ this.Text = "纵向滚动了!"; };
};
}
protected override void WndProc(ref Message m)
{
//在输出窗口自己看对应的数字是多少
Debug.Print(m.Msg.ToString());
switch (m.Msg.ToString())
{
case "528"://我测试对应垂直滚动
//引发事件
if (this.VScrollEvent != null)
this.VScrollEvent(this, null);
break;
case "你自己检测数字":
if (this.HScrollEvent != null)
this.HScrollEvent(this, null);
break;
default:
break;
}
base.WndProc(ref m);
}
private void button1_Click(object sender, EventArgs e)
{
this.Text = "";//清空便于对比
}
}
追问
好厉害啊!!WndProc这个函数我第一次见到,学习了!
追答
有智能感知的啊。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询