C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: スプレッドのセル編集時の←→キーによるセル移動


(過去ログ 113 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■66816 / inTopicNo.1)  スプレッドのセル編集時の←→キーによるセル移動
  
□投稿者/ yukitoro (1回)-(2013/05/29(Wed) 15:19:18)

分類:[VB.NET/VB2005 以降] 

2013/05/29(Wed) 15:20:36 編集(投稿者)
2013/05/29(Wed) 15:20:19 編集(投稿者)

<pre><pre>環境
vb.net2005以降 
spread 5.0J

vb及び.net関係は初心者です。
スプレッドシートのセルが編集中(カーソルが表示されている状態)のときに←→キーを押してもフォーカスが移動されません。
あるサイトからimputmapという物で特定のキーボードをspread上で押下した際に動作するようプログラムを修正しました。
下記に記載します。

'spreadシート名はspr1
Dim im As New FarPoint.Win.Spread.InputMap

'非編集セルでの[Left(←)]キーを「1つ左のセルへ移動」とします
im = spr1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Left, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToPreviousColumn)

'編集中セルでの[Left(←)]キーを「1つ左のセルへ移動」とします
im = spr1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Left, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToPreviousColumn)

'非編集セルでの[Right(→)]キーを「1つ右のセルへ移動」とします
im = spr1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Right, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumn)

'編集中セルでの[Right(→)]キーを「1つ右のセルへ移動」とします
im = spr1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Right, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextColumn)

上記のソースでアプリを起動したところ、非編集状態で←→キーを押下した際は予想通りに動作しましたが編集中では←→キーを押下しても
動作しませんでした。
スプレッドデザイナのプロパティ又はform上のプロパティの設定が必要なのでしょうか?
ソース内でプロパティの設定している箇所を探してみましたが特にセルに対してのキー操作を制御している箇所は見当たりませんでした。
どなたかアドバイスをいただけませんか?

</pre></pre>
引用返信 編集キー/
■66904 / inTopicNo.2)  Re[1]: スプレッドのセル編集時の←→キーによるセル移動
□投稿者/ とおりすがり (1回)-(2013/06/04(Tue) 14:01:56)
No66816 (yukitoro さん) に返信
一般論ですが。。。
Grid系のコントロールの編集状態は、セルと同じ大きさのTextBoxを
前面に表示させて実現している事が多いです。

この為、
1.TextBoxでキー入力を捉える(Grid本体ではイベントが起こっていない場合もある)
 ↓
2.編集状態を確定させる(編集確定でGrid本体とTextBoxの連携があるので固有の手順(メソッドの実行など)が必要)
 ↓
3.カーソルを移動
といった手順が必要だと思われます。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -