画面操作 - クリップボード
入力オブジェクトでコピー&ペーストを禁止したい
EditObject.copyable に Falseをセットすることで、クリップボードへのコピーを禁止することができます。
Ctrl + C キーでのコピー、Ctrl + X キーでの切り取りだけではなく、右クリックメニューからのコピー、切り取りも実行不可となります。
ペースト動作を制御したい場合は、下記のサンプルコードのような制御を入れる必要があります。
下記サンプルコードでは、対象のTextBoxにフォーカスがあたった際に、PasteStringメソッドを利用してクリップボード内の値を退避し、
その後クリップボードを空にしてコピーやぺーストができないようにしています。
また、TextBoxからフォーカスが外れた場合は、退避していたデータを再度クリップボードへセットし、他のオブジェクトへのペーストが可能になるよう実装しています。
Form ScO0052{ height = 77; width = 255; y = 0; x = 0; TextBox tb_1{ x = 24; y = 20; width = 200; height = 32; clearButton = $True; VerticalAlign = ALIGN_MIDDLE; Title = "文字列を入力してください"; copyable = $False; String cliptext = ""; Function OnGetFocus( e ) { # クリップボードの文字列を保存 cliptext = Application.PasteString(); # クリップボードを空にする Application.CopyString(""); } Function OnLostFocus( e ) { # 保存していた文字列をクリップボードに戻す Application.CopyString(cliptext); } } }
Biz-Collections Bizの宝箱 トップへ
Biz/Browser DT・Biz/Designer DT TIPS集 トップへ