- 題名: DataGridViewのセル編集モード
- 日時: 2008/02/22 17:27:06
- ID: 21499
- この記事の返信元:
- (なし)
- この記事への返信:
- [21500] Re[1]: DataGridViewのセル編集モード2008/02/22 23:04:57
- ツリーを表示
お久しぶりです、引っ込んだ(略)と申します。 お答えいたします。 「別のコントロールにフォーカスを移して終わらせる方法」以外の方法として、 例えば以下の方法が考えられます。 ご存知かもしれませんが、ご質問の内容とかなり関連の深い資料を いくつか見つけることができましたので、参考にされてみてください。 ↓trapemiya さんのコードが大変参考になります。 http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=21426&rev=&no=0 ↓魔界の仮面弁士 さんのコードが大変参考になります。 http://bbs.wankuma.com/index.cgi?mode=al2&namber=14365 ↓どぼん!さんの .NET Tips 内にも見つけることができました。 http://dobon.net/vb/dotnet/datagridview/textboxevent.html ↓拙稿ですが参考になれば幸いです。 http://bbs.wankuma.com/index.cgi?mode=al2&namber=13846 Public Class Form4_4 Inherits Form Dim WithEvents m_dgv As New DataGridView() Dim WithEvents m_editingcontrol As Control Private Sub Form4_4_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load m_dgv.Dock = DockStyle.Fill m_dgv.RowCount = 10 m_dgv.ColumnCount = 3 Me.Controls.Add(m_dgv) End Sub Private Sub m_dgv1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles m_dgv.CellEndEdit Me.m_editingcontrol = Nothing ' ← ここでイベントハンドラも削除されます Console.WriteLine("CellEndEdit") End Sub Private Sub m_dgv_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles m_dgv.EditingControlShowing Console.WriteLine("EditingControlShowing") Me.m_editingcontrol = e.Control ' ← ここでイベントハンドラも登録されます End Sub Private Sub m_editingcontrol_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles m_editingcontrol.PreviewKeyDown If e.KeyCode = Keys.Return Then Me.m_dgv.EndEdit() End If End Sub End Class # 多分これでいけるとは思いますが、もし上手くいかなかった場合には # 遠慮なくフィードバックをいただければと思います。 以上です。
分類:[.NET]
よろしくお願いします。
DataGridViewでセルの編集時(テキスト)にセルの編集モードをコード上で
終わらせるよい方法はないでしょうか?
現在は別のコントロールにフォーカスを移して終わらせる方法しか分かりません。
内容は実現できてもこの方法ではすっきりしません。
たとえばENTERキーを押したようなイベントを発生させるとか・・・
それとセル編集モードを終えた後CellEndEditメソッドが発生させないといけません。どなたかご教授お願いします。