当前位置: 代码迷 >> VB Dotnet >> 在Form中可不可以实现Focas在一个编辑栏,同时不影响DataGridView的滚动条功能
  详细解决方案

在Form中可不可以实现Focas在一个编辑栏,同时不影响DataGridView的滚动条功能

热度:2260   发布时间:2013-02-26 00:00:00.0
在Form中可否实现Focas在一个编辑栏,同时不影响DataGridView的滚动条功能
如题,我现在做的Form是,随便点击DataGridvView中的一条数据之后
就把相应的信息反映到若干个编辑栏中,并Focas在最前面的编辑栏,以方便修改

现在的问题是,如果把Focas给了编辑栏之后,DataGridView失去Focas后,滚动条就不响应处理了。

我考虑了两种解决方法:
第一种,在DataGridView中有MouseWheel处理时,夺回Facus以实现滚动处理
结果:因为DataGridView中没有Facus,所以不能实现滚动处理

第二中,在Form中有MouseWheel处理时,把Facus赋予DataGridView
结果:这种情况下,可以实现滚动处理,但是在我没有按下任何一条数据时,DataGridView始终占有Facus(即编辑栏失去Facus)

期待实现结果:鼠标滑轮始终可以实现滚动处理,同时编辑栏也不失去随时可以编辑的功能(即始终抱有Focas),可否实现?

------解决方案--------------------------------------------------------
Protected Overrides Sub WndProc(ByRef m As Message)
Const  WM_MOUSEWHEEL As Integer = &H20a
If m.Msg = WM_MOUSEWHEEL Then
If m.WParam.ToInt32() < 0 Then
dataGridView1.FirstDisplayedScrollingRowIndex += 1
ElseIf m.WParam.ToInt32() > 0 Then
dataGridView1.FirstDisplayedScrollingRowIndex -= 1
End If
End If
MyBase.WndProc(m)
End Sub
  相关解决方案