お世話になります。
開発環境:WinXP Pro、VB.NET(VS2005Pro)
です。
データベースからデータを取得し、DataGridViewに表示し、DataGridViewの
特定のセルにて「Enter」を押して、新しいフォームを開くというようなことを行っております。
DataGridView.KeyDownイベントで処理しておりますが、「Enter」を押して、新しいフォームを開いた後に、キャンセルして元のフォームに戻ってきた際に、もとにあったセルの位置から改行されてしまい、下の行に移動してします。
最上行以外は、「Enter」を押した後に無理やり1行上に上げる処理を入れ、
見かけ上動かないように見せて降りますが、最上行だけは、上に上げる処理を実行すると(-1)となってしまい、エラーとなってしまいします。
何とか最上行においても、「Enter」を押しても改行させない方法はありませんでしょうか?
また、「Enter」を押して改行させない良い方法が他にありませんでしょうか?
本件で、1ヶ月弱悩んでおります。
ご教授お願い致します。
最上行だけは、上に上げる処理を実行しなければいいのでは???
DataGridだとEnter押しても改行しませんでした。
普通にControl.KeyDown イベントのヘルプには
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.keydown.aspx
KeyEventArgs.Handled プロパティを設定して処理させないサンプルコードも載ってますし。。。
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.keyeventargs.handled.aspx
…DataGridView で期待通り動くかどうかまでは知りませんが。
皆さん、ご教授ありがとうございました。
以下でDataGridView.KeyDownイベントをキャンセルし、改行させないように
することができました。
If e.KeyCode = Keys.Enter Then
e.Handled = True
End If
ありがとうございました。
もっと、早くご相談すべきでした。感謝感謝です。m(__)m
ツイート | ![]() |