- - PR -
DataGridView内でのENTERの処理
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-01-28 21:26
開発環境:VB2005
いつもお世話になっております。初歩的な事で質問させて下さい。 1つのフォーム内にAAADataGridView(親)、BBBDataGridView(子)があります。 通常ですとAAADataGridView内でENTERキーを押しますとカーソルが下に移動しますが、移動をさせずにBBBDataGridViewへカーソルを移動させたいのですが何か良い方法はございませんでしょうか? よろしくお願いします。 [ メッセージ編集済み 編集者: さやまん 編集日時 2008-01-29 09:23 ] | ||||||||||||||||
|
投稿日時: 2008-01-29 10:36
タイトルと本文が変わっているような気がしますが、 現在詰まっていることは DataGridView のセルで Enterキー の KeyPress イベントを補足できないというので悩んでいますか? だとしたらこのあたりかな? http://dobon.net/vb/dotnet/datagridview/textboxevent.html | ||||||||||||||||
|
投稿日時: 2008-01-29 10:37
普通にキーを捕捉して BBBDataGridView にフォーカスを移すだけですよね。 DataGridViewTextBoxEditingControl でのお話でしょうか? これまでどんな方法を試されたのでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2008-01-29 21:45
じゃんぬねっとサン、かるあサン返答ありがとうございます。
普通にキーを捕捉して BBBDataGridView にフォーカスを移すだけですよね。 DataGridViewTextBoxEditingControl でのお話でしょうか? これまでどんな方法を試されたのでしょうか? コントールの移動を下記のコードで行いました。 If e.KeyCode = Keys.Enter Then If e.Control = False Then Me.SelectNextControl(Me.ActiveControl, Not e.Shift, True, True, True) End If End If ですが、上記の方法ですとENTERキーを押しますとAAADataGridViewのレコードが1行下の行に移動してしまいます。おっしゃるとおりENTERキーの補足の方法がわかりません。 お手数をお掛けしますがよろしくお願いします。 | ||||||||||||||||
|
投稿日時: 2008-01-30 10:03
私からの確認事項がわかりにくかったかもしれませんので、もう一度書かせて頂きます。 DataGridView コントロール上で Key を捕捉したいのでしょうか? それとも DataGridView の各セル (DataGridViewTextBoxEditingControl) が編集中の状態で Key を捕捉したいのでしょうか? 後者であれば、かるあさんのレスが参考になります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2008-01-30 11:40
お手数をお掛けします。私の説明不足です。申し訳ありません。 再度質問内容を整理しましたのでご確認をお願いします。 1つのフォーム内にAAADataGridView(親)、BBBDataGridView(子)があります。 通常ですとAAADataGridView内で上下キーでレコードを選択しENTERキーを押しますとカーソルが下のレコードに移動しますが、ENTERキーを押したときにレコードの移動はさせずにBBBDataGridView(子)のレコードを表示しBBBDataGridView(子)のレコードの先頭へカーソルを移動させたいのですが何か良い方法はございませんでしょうか? (レコードの編集はしませんので編集中の捕捉ではないかと思います。) お手数をお掛けしますがよろしくお願いします。 | ||||||||||||||||
|
投稿日時: 2008-01-30 13:25
という問いに対し、
と、回答していることから、前者であると推測します。 KeyEventArgsのプロパティ(microsoft.com)の中に、KeyEventArgs.Handled プロパティ(microsoft.com)があります。 このプロパティの説明は初見では何いってるかわからないと思いますが、 プロパティ値のところに (KeyEventArgs.Handled プロパティより)
と書かれています。 「DatagridViewにおいて、Enterキーを押下した時の規定の処理は、次行に移すことでは?」と思えます。 そこで、上述されたコード(何にも書かれてないけど、KeyDownイベントのハンドラでしょう)に、
をどこかに書き足せば、次行に移す処理が省略されるのではと考えられます。 #ってゆうか、省略されたんだけどねw | ||||||||||||||||
|
投稿日時: 2008-01-31 20:50
かずくんサンありがとうございます。
おかげさまで解決しました。 皆様大変ありがとうございました。 |
1