本帖最后由 beitesting 于 2016-5-18 17:38 编辑
求助:单击Spread一行,如何让焦点跳转到一个TextBox上?
Spread是只读、按行选择。
画面上还有一个TextBox,
当点击一行时,
把这行上第二个单元格的值赋给这个TextBox,
然后把焦点跳转到这个TextBox上。
现在是利用CellClick实现了赋值,但是焦点始终在Spread上。
请大虾指点一下。
具体代码如下:
Imports FarPoint.Win.Spread
Public Class Form1
Private Sub txtName_TextChanged(sender As Object, e As EventArgs) Handles txtName.TextChanged
txtCode.Focus()
End Sub
Private Sub spdAtsukai_CellClick(sender As Object, e As CellClickEventArgs) Handles spdAtsukai.CellClick
txtCode.Text = spdAtsukai.ActiveSheet.Cells(e.Row, 0).Text
txtName.Text = spdAtsukai.ActiveSheet.Cells(e.Row, 1).Text ’执行这句后,Me.ActiveControl已经变成了txtName,但是CellClick执行完又变成焦点在Spread上了。
End Sub
‘用下面的方法实现了按键盘上的上下按键把选中行的值,赋给TextBox,也能实现焦点迁移。
Private Sub spdAtsukai_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles spdAtsukai.PreviewKeyDown
If e.KeyCode = 38 Then
Call spdAtsukai_CellClick(spdAtsukai, New CellClickEventArgs(Nothing, spdAtsukai.ActiveSheet.ActiveRowIndex - 1, spdAtsukai.ActiveSheet.ActiveColumnIndex, 0, 0, MouseButtons.None, False, False))
ElseIf e.KeyCode = 40 Then
Call spdAtsukai_CellClick(spdAtsukai, New CellClickEventArgs(Nothing, spdAtsukai.ActiveSheet.ActiveRowIndex + 1, spdAtsukai.ActiveSheet.ActiveColumnIndex, 0, 0, MouseButtons.None, False, False))
End If
End Sub
End Class
|
|