No.1ベストアンサー
- 回答日時:
DataGridViewでセルが編集中の時にキーイベントを捕捉する
DOBON.NET > プログラミング道 > .NET Tips > DataGridView
http://dobon.net/vb/dotnet/datagridview/textboxe …
上記ページを参考にしてみました
動作するとは思わなかったですけど・・・なんかうまく動くみたいです^^;
コピーペーストのキーイベントのみ対応しています
マウスからの貼り付けには対応していません
#対応するならば、ウィンドウメッセージのフックにて対応するしかないと思われます
#もしくはコンテキストメニュー自体を表示させなくするとか・・・
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
この回答へのお礼
お礼日時:2007/11/27 15:56
回答ありがとうございました。出来ました!
参考ページは何度も見ていたのですが、コードにすることが出来なくて困っていました。
もっと、頑張って勉強します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) Excelにて、セルに入力してある文字の中から文字と最後の数字のみ切り取り貼り付けるVBA 5 2022/12/27 08:40
- Excel(エクセル) Excel フィルタ後のコピー貼付けと可視セルの関係について 3 2023/02/07 16:42
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
- Windows 10 Window10ショートカットキーで切り取り貼り付けするとコンテキストメニューと挙動が異なる理由は? 2 2022/04/16 17:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの画面で十字マークが...
-
エクセルで連続データから、数...
-
excelで、スクロールをすると限...
-
エクセルでカーソルが四方に矢...
-
Shift押しながら、矢印ボタンで...
-
セルをクリックすると付箋のよ...
-
エクセル 画面上の行数を調節...
-
EXCEL アルファベットと数字の...
-
Excel選択を繰り返すとセルの色...
-
excelで1行ごとに一気に削除す...
-
エクセル 数値を全て「1」にす...
-
エクセルで0を除いて昇順に並...
-
EXCEL オートフィルタの結果に...
-
フィルタを解除した後の表示位置
-
Excelで表のデータを並び替えた...
-
VB2005 DataGridViewでセルデー...
-
Excelで急に動かなくなる
-
ピポットテーブルエラー解決方法
-
EXCELで不規則的に行の高さを変...
-
エクセル エンターキーを押す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelで、スクロールをすると限...
-
エクセルの画面で十字マークが...
-
エクセルで連続データから、数...
-
複数のセルの入力内容を一度に...
-
セルをクリックすると付箋のよ...
-
エクセルでハイパーリンクのU...
-
EXCEL アルファベットと数字の...
-
エクセル 数値を全て「1」にす...
-
Excel選択を繰り返すとセルの色...
-
Excelで表のデータを並び替えた...
-
エクセル 画面上の行数を調節...
-
エクセルでカーソルが四方に矢...
-
エクセルで0を除いて昇順に並...
-
ピポットテーブルエラー解決方法
-
Shift押しながら、矢印ボタンで...
-
excelで1行ごとに一気に削除す...
-
エクセルVBAでセル範囲のデータ...
-
Excelで急に動かなくなる
-
エクセルで任意のセルをクリッ...
-
フィルタを解除した後の表示位置
おすすめ情報