试了下可以啊
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 = "正在向下滚动滑轮";
    }
}

解决方案 »

  1.   

    下面正常this.MouseWheel += new MouseEventHandler(DoMouseEventHandler);
            private void DoMouseEventHandler(object sender, MouseEventArgs e)
            {
                MessageBox.Show("ok");
            }
      

  2.   

    你的窗体上,有别的控件
    MouseWheel事件发生在控件上,而不是你的Form上
      

  3.   


    例如ListView控件,如果你的焦点在ListView上,你的Form是接收不到MouseWheel事件的
      

  4.   


    例如ListView控件,如果你的焦点在ListView上,你的Form是接收不到MouseWheel事件的
    可是我用this.fouse()了也不行
      

  5.   


    例如ListView控件,如果你的焦点在ListView上,你的Form是接收不到MouseWheel事件的
    确实有listbox,怎么样让焦点回到窗体上
      

  6.   

    Form是不能具有焦点的
    最简单的办法,就是给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函数
    具体怎么去做,就看你自己想要的效果了,绕个圈圈,总能实现的
      

  7.   

    谢楼上。
    我用form.activeControl =panel  ,让这个面板得到焦点,但是一点其他地方,mousewheel又变成listbox的了。还是楼上的方法好