SPREAD for .NET でカーソルキー移動の設定

←、→のカーソルキーでのセルフォーカス移動を実現したかったのでファンクションのときにやった
Form_Loadのイベントでスプレッドのキーマッピングを変更するようにしてみた

  1. 'スプレッド内でファンクションキーのイベントが起きるようにキーマッピングを変更
  2. Dim im As FarPoint.Win.Spread.InputMap
  3. im = Me.spd_明細.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
  4. 'スプレッドの→キーの割り当てを次の列に移動に変更
  5. im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Right, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumnWrap)
  6. 'スプレッドの←キーの割り当てを前の列に移動に変更
  7. im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Left, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToPreviousColumnWrap)

を行ってみるが現象は変わらず・・・

調べてみるとGrapeCityのサポートに情報を発見

どうやらCellTypeのAcceptsArrowKeysプロパティを
FarPoint.Win.SuperEdit.AcceptsArrowKeys.AllArrows
に設定してやればいいらしい。

コードで新規テキストセルを作ってしまうとデザイナで設定したものがクリアされてしまうので
初期ルーチンで下のような感じでセルタイプを取得して、キーの設定設定を行い
再度セルタイプに設定値を反映という方法。
←、→キーでのセルフォーカス移動を実現した。

  1. Dim tc As FarPoint.Win.Spread.CellType.TextCellType
  2. Dim nc As FarPoint.Win.Spread.CellType.NumberCellType
  3. Dim intRow As Integer
  4. Dim intCol As Integer
  5.  
  6. intRow = Me.spd_明細.ActiveSheet.RowCount - 1
  7.  
  8. Me.spd_明細.SuspendLayout() 'レイアウトロジック一時中断
  9.  
  10. '各セルにカーソルキーでの移動をセットする
  11. For intCol = 1 To Me.spd_明細.ActiveSheet.ColumnCount - 1
  12. Select Case TypeName(Me.spd_明細.ActiveSheet.Cells(intRow, intCol).CellType)
  13. Case "NumberCellType"
  14. nc = Me.spd_明細.ActiveSheet.Cells(intRow, intCol).CellType
  15. nc.AcceptsArrowKeys = FarPoint.Win.SuperEdit.AcceptsArrowKeys.CtrlArrows
  16. Me.spd_明細.ActiveSheet.Cells(intRow, intCol).CellType = nc
  17. Case "TextCellType"
  18. tc = Me.spd_明細.ActiveSheet.Cells(intRow, intCol).CellType
  19. tc.AcceptsArrowKeys = FarPoint.Win.SuperEdit.AcceptsArrowKeys.CtrlArrows
  20. Me.spd_明細.ActiveSheet.Cells(intRow, intCol).CellType = tc
  21. End Select
  22. Next
  23. Me.spd_明細.ResumeLayout() 'レイアウトをレジューム

.NETのSPREADはやっぱり以前より見えない設定が多いな・・・
もう少しデザイナで設定できるとわかりやすいんだけどな。


目処が立ってきた・・・

先日受注した急ぎの開発案件もなんとか完了の目処が立ってきた。

今回の開発で今まで自分が経験していなかったActiveReportsの使い方もできたし、
ハードワーキングだったけどその分経験も積めたと思う。

あとは仕様確認の回答を待って それを実装すれば完了。
ハードワーキングもあと少しで収束の予感。

その仕様が大変でないことを願う・・・(-人-)


短納期の案件を受注

急ぎの開発案件の話を頂く。

話を良く聞いてみると来週金曜日までに3本のカスタマイズと短納期。
仕様が決定していないところが多数あるのがこれだけの期間だと厳しいところ。
まずは仕様不明部分を洗い出していこう。

約3ヶ月ぶりの短納期なんとか乗り切ろう!