DataGridView上没有鼠标滚轮事件

本文关键字:事件 鼠标 DataGridView | 更新日期: 2023-09-27 18:00:43

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

在这个问题中,建议将事件MouseWheel添加到我的DataGridView中。但我找不到这样的事件。

我使用.Net Framework 4.5,在我的应用程序上运行是64-bit模式。在哪里可以找到此活动(如果有的话)。否则,我的DataGridView会忽略所有鼠标滚动吗?

DataGridView上没有鼠标滚轮事件

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

关于

因为它偶尔会导致不可预测的崩溃

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

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

这将起作用:

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

这将不起作用:

DataGridView.MouseWheel += ...

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

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

通过手动处理每个DataGridView的鼠标滚轮来禁用它。

添加以下方法:

    void DisableMouseWheel(object sender, MouseEventArgs e)
    {
        HandledMouseEventArgs h = (HandledMouseEventArgs)e;
        h.Handled = true;
    }

在窗体的构造函数或窗体的Load事件中绑定事件:

dgv.MouseWheel += new MouseEventHandler(DisableMouseWheel);

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