DataGridView上的MouseWheel没有事件

时间:2015-07-01 14:04:13

标签: c# winforms events scroll datagridview

我想禁用DataGridView上的所有鼠标滚动,因为它偶尔会导致无法预料的崩溃。

this question中,建议将事件MouseWheel添加到我的DataGridView。但我找不到这样的事件。

我正在使用 .Net Framework 4.5 并在我的应用程序上运行是'64-bit模式。我在哪里可以找到这个事件。否则我的DataGridView会忽略所有鼠标滚动吗?

3 个答案:

答案 0 :(得分:0)

DataGridView(System.Windows.Forms)应该包含MouseWheel的事件。请确保您使用的是变量名而不是类名。例如:

这将有效:

DataGridView myDataGridView = new DataGridView();
myDataGridView.MouseWheel += myDataGridView_MouseWheel;

这不起作用:

DataGridView.MouseWheel += ...

答案 1 :(得分:0)

您可以在DataGridView msdn页面找到活动,只需确保勾选"继承"复选框以查看继承的成员。在这种情况下Control.MouseWheel

至于

  

因为它偶尔会导致无法预料的崩溃

也许值得研究一下。如果它在鼠标滚动时发生,可能由于某些其他原因(例如,使用 PgUp PgDown 键滚动)。

答案 2 :(得分:0)

DataGridView的鼠标滚轮支持在64或32位可执行文件中无法正常工作。

它经常导致渲染损坏,有时会导致程序崩溃。

通过手动处理每个DataGridView的MouseWheel来禁用它。

添加以下方法:

    void DisableMouseWheel(object sender, MouseEventArgs e)
    {
        HandledMouseEventArgs h = (HandledMouseEventArgs)e;

        h.Handled = true;

    }

将事件绑定到表单的构造函数或表单的加载事件中:

dgv.MouseWheel += new MouseEventHandler(DisableMouseWheel);

注意:将dgv替换为您自己的DataGridView的名称。