これ何て呼びますか

VB2010で、データグリッドビューのグリッドにペーストさせたくありません。
Ctrl+vのイベントを解除させる方法はないでしょうか?
ご存知の方おしえてください。よろしくお願いします。


Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
If e.Control And e.KeyCode = Keys.V Then
     'ココにイベント解除を入れたいです
End If
End Sub

A 回答 (2件)

KeyDown イベントについて言っているのであれば、


既にご自身で使っておられる
http://qanda.rakuten.ne.jp/qa6529302.html
> e.Handled = True
ではないでしょうか。

それで何か上手くいかないのであれば、
その他のイベントが起こっているか、
DataGridView の KeyDown の処理だけでは不十分か、
ウィンドウメッセージを確認して適切な対処を取る
必要があるのだと思われます。

想像するに、あくまで KeyDown イベントでキャンセル
できるのは純粋なキー操作であって、それにショート
カットキーが割り当てられて動作する部分では、OS側の
制御が係わっているのではないでしょうか。
・DOBON.NET Tips
 TextBoxにペースト(貼り付け)できないようにする
http://dobon.net/vb/dotnet/control/disablepaste. …

DataGridView は編集時にはセルと同サイズの TextBox
を表示させているようです。DataGridView のイベントで
捉えられなかった場合は、その TextBox を制御する
ようにする事で可能かもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やっと不具合の部分が理解できました。
現在、Ctrl+Vでエクセルの表をコピペでデータグリッドビューに貼り付けれるようにしたのですが、
そのイベント後に、OSのショートカット機能がグリッドテキストに働いていました。
ヒントをくださりありがとうございます。

クリップボード内容を配列化した後、
クリップボードを空にし、
その中にアクティブグリッドにいれたい数値を格納することでうまくいきました。

お礼日時:2011/02/23 11:37

ちょっと面倒ですが、DataGridViewColumn や DataGridViewCell を継承したクラスをつくればできるような気がします。



http://207.46.16.248/ja-jp/library/7tas5c80(VS.8 …
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
勉強になり、ひとつレベルアップしました。

お礼日時:2011/02/23 11:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報