2011-11-16 86 views
0

我有一个胜利形式内的数据网格,每个都有一个V.滚动条。现在,默认情况下,外滚动条是活动的,并激活内滚动,我必须点击数据网格内。 我想要的是,当鼠标移动到数据网格上,数据网格的滚动应该是活动的,当我的鼠标在数据网格区域外时,表单的滚​​动应该是活动的。两个滚动条 - 在MouseMove事件上启用第二个滚动条 - C#

+1

您是使用Winforms还是Web应用程序? –

+0

问题说“赢取表单内的数据网格”,所以我添加了winforms标记。 – Marijn

回答

1

您可以设置的MouseEnter和鼠标离开在DataGridView的滚动条属性,这样

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上处理这个,你可以使用它。

+0

dataGridView.ScrollBars = ScrollBars.Both;我想这个陈述只会让两个滚动条都可见。但是,通过这种方式,我可以通过鼠标滚轮向下/向上在数据网格区域向下滚动/向上滚动吗?目前如果我不点击数据网格,鼠标滚轮滚动将滚动外部V.Scroll无论我的指针在哪里。 – Priyam

+0

我明白了!我只需要将重点放在数据网格上。 – Priyam