SPREAD.NET 2.5 WinFormで前後のコントロールへの移動制御

VB.NET2005とSPREAD for .NET 2.5J Windows Forms Edの環境で開発中に
ちょっとしたサンプルになるかもと記事を書いてみた。

Spreadの先頭の行で↑キーか、最初のセルで[Shift]+[Tab]キーを押したら
 前のコントロールへ
Spreadの最後の行で↓キーか、最後のセルで[Tab]キーを押したら
 次のコントロールへ
それぞれフォーカスを動かす方法。

SpreadにはAdvanceイベントというのがあり、

ユーザーがSpreadの先頭または最後の行から移動しようとするときに発生するイベント

なのでこれを使って前後のコントロールに移動する制御に対応させるサンプルは以下の通り。

これでマウスを使わずにキーボード操作でもフォーカス移動が快適に。

  1. Private Sub spdHoge_Advance(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.AdvanceEventArgs) _
  2. Handles spdHoge.Advance
  3.  
  4. If sender.GetType.Name = "FpSpread" Then
  5. 'アクティブなセルが先頭行に来たら 前のコントロールにフォーカスを移す
  6. 'アクティブなセルが最終列、最終行の場合 次のコントロールにフォーカスを移す
  7. If (spdHoge.ActiveSheet.ActiveRowIndex = 0) _
  8. Or (spdHoge.ActiveSheet.ActiveColumnIndex = spdHoge.ActiveSheet.ColumnCount - 1 _
  9. And spdHoge.ActiveSheet.ActiveRowIndex = spdHoge.ActiveSheet.RowCount - 1) Then
  10. e.Cancel = True
  11. 'フォーカスを移す
  12. Me.SelectNextControl(spdHoge, e.AdvanceNext, True, True, True)
  13. End If
  14. End If
  15. End Sub

SPREAD.NET 2.5 WinFormで前後のコントロールへの移動制御” への1件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*