两个滚动条-在MouseMove事件上启用第二个滚动条-C#

两个滚动条-在MouseMove事件上启用第二个滚动条-C#,c#,winforms,scrollbar,mouseevent,mousemove,C#,Winforms,Scrollbar,Mouseevent,Mousemove,我在win表单中有一个datagrid,每个表单都有一个V.滚动条。现在,默认情况下,外部滚动条处于活动状态,要激活内部滚动条,我必须在datagrid内部单击。 我想要的是,当鼠标移动到datagrid上时,datagrid的滚动条应处于活动状态,当鼠标位于datagrid区域之外时,窗体的滚动条应处于活动状态。您可以在MouseEnter和MouseLeave上设置DataGridView的ScrollBars属性,如下所示 private void dataGridView1_MouseE

我在win表单中有一个datagrid,每个表单都有一个V.滚动条。现在,默认情况下,外部滚动条处于活动状态,要激活内部滚动条,我必须在datagrid内部单击。
我想要的是,当鼠标移动到datagrid上时,datagrid的滚动条应处于活动状态,当鼠标位于datagrid区域之外时,窗体的滚动条应处于活动状态。

您可以在MouseEnter和MouseLeave上设置DataGridView的ScrollBars属性,如下所示

private void dataGridView1_MouseEnter(object sender, EventArgs e)
{
    DataGridView dataGridView = sender as DataGridView;
    if (dataGridView != null)
    {
        dataGridView.ScrollBars = ScrollBars.Both;
    }
}

private void dataGridView1_MouseLeave(object sender, EventArgs e)
{
    DataGridView dataGridView = sender as DataGridView;
    if (dataGridView != null)
    {
        dataGridView.ScrollBars = ScrollBars.None;
    }
}

您也可以在处理程序中使用dataGridView硬编码,因为您可能知道您想要哪一个,但如果您需要在多个dataGridView上处理此问题,您可以使用它。

您使用的是Winforms还是web应用程序?问题是“win form中的datagrid”,所以我添加了winforms tag.dataGridView.ScrollBars=ScrollBars.Both;我想这句话只会让两个滚动条都可见。但是,这样我就可以在datagrid区域通过鼠标滚轮向下/向上滚动了吗?目前,如果我不点击datagrid,无论我的指针在哪里,鼠标滚轮滚动都会滚动外部V。滚动。