• ベストアンサー

VB2005 DataGridViewでセルデータ貼付後、貼付したデータの全体を選択した状態に出来ますか?

DataGridviewのセルのデータを[Ctrl]+[C]でコピーし、セルを移動し[Ctrl]+[V]でデータの貼り付けをすると、カーソルはデータ最後の文字の後にきます。 この状態を、貼り付けした文字全体を選択した状態にしたいのですが、出来ますでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.1

DataGridViewでセルが編集中の時にキーイベントを捕捉する DOBON.NET > プログラミング道 > .NET Tips > DataGridView http://dobon.net/vb/dotnet/datagridview/textboxevent.html 上記ページを参考にしてみました 動作するとは思わなかったですけど・・・なんかうまく動くみたいです^^; コピーペーストのキーイベントのみ対応しています マウスからの貼り付けには対応していません #対応するならば、ウィンドウメッセージのフックにて対応するしかないと思われます #もしくはコンテキストメニュー自体を表示させなくするとか・・・ Private _pasteFlag As Boolean = False  'ペーストフラグ ''EditingControlShowingイベントハンドラ Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing   If TypeOf e.Control Is DataGridViewTextBoxEditingControl Then     Dim dgv As DataGridView = CType(sender, DataGridView)     Dim tb As DataGridViewTextBoxEditingControl = CType(e.Control, DataGridViewTextBoxEditingControl)     RemoveHandler tb.KeyDown, AddressOf dataGridViewTextBox_KeyDown     RemoveHandler tb.TextChanged, AddressOf dataGridViewTextBox_TextChanged     If dgv.CurrentCell.OwningColumn.Name = dgv.Columns(0).Name Then       '特定カラムのみ       AddHandler tb.KeyDown, AddressOf dataGridViewTextBox_KeyDown      'キーダウンイベント       AddHandler tb.TextChanged, AddressOf dataGridViewTextBox_TextChanged  'テキスト変更後イベント     End If   End If End Sub ''キーダウン Private Sub dataGridViewTextBox_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)   If e.Control AndAlso e.KeyCode = Keys.V Then     Me._pasteFlag = True   End If End Sub ''テキスト変更後 Private Sub dataGridViewTextBox_TextChanged(ByVal sender As Object, ByVal e As EventArgs)   If Me._pasteFlag Then     Dim tb As DataGridViewTextBoxEditingControl = CType(sender, DataGridViewTextBoxEditingControl)     tb.SelectAll()     Me._pasteFlag = False   End If End Sub

JJ-TO
質問者

お礼

回答ありがとうございました。出来ました! 参考ページは何度も見ていたのですが、コードにすることが出来なくて困っていました。 もっと、頑張って勉強します。

関連するQ&A