テキストボックスへの貼り付けができないようにする方法

解決


おデブ  2003-03-05 01:51:08  No: 106176

テキストボックスへの入力でほかのテキストをコピーしたものからの貼り付けが行えないようにしたいと思っているのですがどうしたらよいものでしょうか?
説明足りてますか?


oku  URL  2003-03-05 08:13:49  No: 106177

うーーん  これでいけるかな?

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 22 Then
            ' ビープ音を鳴らす
            Beep
            ' 入力された文字をキャンセル
            KeyAscii = 0
    End If
End Sub


nanashi  2003-03-05 20:09:17  No: 106178

> うーーん  これでいけるかな?
いや、それじゃ全然ムリっしょ(藁)

そもそも貼り付けは「Shift + Insert」と「Ctrl + V」、
あとマウスの右クリック時に出るポップアップメニューと
Windowsキーの隣にあるメニューキー(?)でのポップアップメニューから行います。

で、キーボードからの貼り付けは割と簡単にブロック出来るんですが
メニューからの貼り付けを回避するにはサブクラス化をする必要があるそうです。
ちなみに、やったことないんでやり方は分かりません。


たかみちえ  URL  2003-03-06 05:15:59  No: 106179

> Windowsキーの隣にあるメニューキー
  どうやら"アプリケーションキー"というのが正式名称みたいです。
  まあ、メニューのマークが書いてあるのに、不思議ですね。

  サブクラス化してWM_PASTEを無視する…じゃだめかな?


おデブ  2003-03-06 07:16:42  No: 106180

複雑になりそうですね。
少し条件を加えたいと思います。

実は正確にいうとテキストボックスではなくフレキシブルグリッドなんですが、セルに入力する際改行が含まれている内容をコピーして貼り付けてしまうとグリッドの表示がおかしくなってしまうんです。
ここで貼り付けができなくなれば解決できるなと思ったのですが、ほかに方法があるでしょうか?
考えてみても解決法が浮かびません。

ところで、新規で質問したほうがよいのでしょうか?


おデブ  2003-03-08 00:20:57  No: 106181

クリップボードをクリアするという方法でごまかしですが自己解決することができました。


nanashi  2003-03-08 01:12:54  No: 106182

フレックスグリッドってことはテキストボックスに入力してから、Textをグリッドに入れるんですよね。
じゃあその時に改行コードを消しちゃえば良いんじゃないですか?

MSFlexGrid1.Text = Replace$(Text1.Text, vbCrLf, vbNullString)


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

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






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