试了下可以啊
private void Form1_Load(object sender, EventArgs e)
{
this.MouseWheel += new MouseEventHandler(Form1_MouseWheel);
}void Form1_MouseWheel(object sender, MouseEventArgs e)
{
if (e.Delta > 0)
{
this.Text = "正在向上滚动滑轮";
}
else
{
this.Text = "正在向下滚动滑轮";
}
}
private void Form1_Load(object sender, EventArgs e)
{
this.MouseWheel += new MouseEventHandler(Form1_MouseWheel);
}void Form1_MouseWheel(object sender, MouseEventArgs e)
{
if (e.Delta > 0)
{
this.Text = "正在向上滚动滑轮";
}
else
{
this.Text = "正在向下滚动滑轮";
}
}
解决方案 »
- 窗体所有控件的名字都变回初始值了,这是怎么回事。。。
- C# 中如何产生一组服从正态分布的数据?
- 水晶报表中的sql表达式字段怎么用
- 用c#写了一个win服务向网络上一太机器写文件,请问怎么设置权限??急???
- 请高手帮忙解决一个调试问题(跪求)
- 怎样计算datagrid的可见(可视)行,是哪些行
- C#手写DataGrid的表头单击事件该怎么写?
- 问:java用在网页中,用applet小程序,C#用在网页中,使用什么呢?
- VS2008里的WPF Browser Application的定义是什么?就是Silverlight吗?
- 大家帮忙给几个C#源代码网址(最好是国内的)
- 没有做过架构,请教各位大牛来看看
- 在线急求大神解决
private void DoMouseEventHandler(object sender, MouseEventArgs e)
{
MessageBox.Show("ok");
}
MouseWheel事件发生在控件上,而不是你的Form上
例如ListView控件,如果你的焦点在ListView上,你的Form是接收不到MouseWheel事件的
例如ListView控件,如果你的焦点在ListView上,你的Form是接收不到MouseWheel事件的
可是我用this.fouse()了也不行
例如ListView控件,如果你的焦点在ListView上,你的Form是接收不到MouseWheel事件的
确实有listbox,怎么样让焦点回到窗体上
最简单的办法,就是给ListView加上MouseWheel事件,做你想做的事情,或者单纯的调用你的Form的MouseWheel函数
这样实现的效果,就是在ListView上滚动的话,也做MouseWheel的事情了如果你只想在Form上滚动的时候才做事
那么,你就添加个Button,然后给Button设置位置为 (-1000, 0),让这个Button显示到可视区域外
然后给Form添加MouseEnter事件,一旦Enter了,就把焦点设置到Button上
这样你的MouseWheel就可以在Form上响应了
缺点是,ListView会失去焦点再或者更麻烦一点的
就是给Form加MouseEnter事件,里面只控制一个Flag
给ListView加MouseWheel事件,判断上面那个Flag,如果为真,就执行Form的MouseWheel函数
具体怎么去做,就看你自己想要的效果了,绕个圈圈,总能实现的
我用form.activeControl =panel ,让这个面板得到焦点,但是一点其他地方,mousewheel又变成listbox的了。还是楼上的方法好