如题,我现在做的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