DataGridView 鼠标滚轮滚动停止工作

5

我的应用程序中有一个DataGridView,我无法使用鼠标滚轮滚动它。之前它一直正常工作。我不确定是什么原因导致了这个问题,因为我只是最近注意到这个问题,此前我已经对代码进行了多次更改。

我没有发布任何代码,因为代码有超过2K行,我不确定可能出错的位置。

有什么想法是什么导致了这个问题?如果您需要任何代码,我可以稍后编辑问题。


只有当网格获得焦点时,鼠标滚轮才能滚动网格。在使用滚动轮之前,请尝试单击网格中的一个单元格。 - ean5533
你是否意外地添加了一个针对MouseWheel事件的EventHandler并拦截了它? - Dan Busha
谢谢,当我点击单元格时,焦点会移动。 - Igor
1个回答

7
几乎可以确定问题发生是因为 DataGridView 失去了焦点。这可能是因为表单上的其他控件需要焦点,或者默认情况下表单将焦点给予不同的控件。
您可以强制 DataGridView 获得焦点。如果要模拟标准的 Microsoft Windows 行为,在鼠标悬停在控件上时启用鼠标滚轮滚动,则只需使用以下代码。
private void SettingsGrid_MouseEnter(object sender, EventArgs e)
{
     dataGridView1.Focus();
}

如果您想无论哪个控件拥有焦点都可以滚动网格,则代码与上述相似,稍微调整一下即可。

就是这样!谢谢。当单击时,它将焦点切换到文本框。现在我需要弄清楚如何保持焦点切换到文本框并能够滚动dataGridView。 - Igor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接