DataGridView上でEnterで改行させない方法

解決


Hero  2006-10-13 17:29:26  No: 96911

お世話になります。
開発環境:WinXP Pro、VB.NET(VS2005Pro)
です。

データベースからデータを取得し、DataGridViewに表示し、DataGridViewの
特定のセルにて「Enter」を押して、新しいフォームを開くというようなことを行っております。
DataGridView.KeyDownイベントで処理しておりますが、「Enter」を押して、新しいフォームを開いた後に、キャンセルして元のフォームに戻ってきた際に、もとにあったセルの位置から改行されてしまい、下の行に移動してします。
最上行以外は、「Enter」を押した後に無理やり1行上に上げる処理を入れ、
見かけ上動かないように見せて降りますが、最上行だけは、上に上げる処理を実行すると(-1)となってしまい、エラーとなってしまいします。
何とか最上行においても、「Enter」を押しても改行させない方法はありませんでしょうか?
また、「Enter」を押して改行させない良い方法が他にありませんでしょうか?

本件で、1ヶ月弱悩んでおります。
ご教授お願い致します。


特攻隊長まるるう  2006-10-13 22:07:21  No: 96912

最上行だけは、上に上げる処理を実行しなければいいのでは???


あん  2006-10-13 22:26:21  No: 96913

DataGridだとEnter押しても改行しませんでした。


特攻隊長まるるう  2006-10-14 01:29:55  No: 96914

普通に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 で期待通り動くかどうかまでは知りませんが。


Hero  2006-10-15 01:04:40  No: 96915

皆さん、ご教授ありがとうございました。
以下でDataGridView.KeyDownイベントをキャンセルし、改行させないように
することができました。

If e.KeyCode = Keys.Enter Then
    e.Handled = True
End If

ありがとうございました。
もっと、早くご相談すべきでした。感謝感謝です。m(__)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加