トップ回答者
複数のテキストボックスでctrl+C,ctrl+V,ctrl+Xを使いたい時

質問
-
フォーム上に10ほどテキストボックスがありそれぞれコピー、ペースト、カットを実装したいとき以下のように書く以外に方法はあるのでしょうか?
例として3つだけ書きます。
諸先輩方宜しくお願いしますm(_ _)m
ここからコード
Private Sub txtAGet_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtAGet.KeyUp
Select Case e.KeyCode
Case Keys.C AndAlso e.Control
DirectCast(sender, TextBox).Copy()
Case Keys.V AndAlso e.Control
DirectCast(sender, TextBox).Paste()
Case Keys.X AndAlso e.Control
DirectCast(sender, TextBox).Cut()
End Select
End Sub
'----------------------
Private Sub txtBGet_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtBGet.KeyUp
Select Case e.KeyCode
Case Keys.C AndAlso e.Control
DirectCast(sender, TextBox).Copy()
Case Keys.V AndAlso e.Control
DirectCast(sender, TextBox).Paste()
Case Keys.X AndAlso e.Control
DirectCast(sender, TextBox).Cut()
End Select
End Sub
'----------------------
Private Sub txtCGet_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtCGet.KeyUp
Select Case e.KeyCode
Case Keys.C AndAlso e.Control
DirectCast(sender, TextBox).Copy()
Case Keys.V AndAlso e.Control
DirectCast(sender, TextBox).Paste()
Case Keys.X AndAlso e.Control
DirectCast(sender, TextBox).Cut()
End Select
End Sub
回答
-
-
外池と申します。Ctrl + C、V、X、Aの操作をするためにプログラムを書き下す必要があるかどうかは別にして・・・、
複数のTextBoxのいずれかひとつでイベント「SomeEvent」が起きたときの処理を、一気に書く方法を、一般論で書いておきます。
Sub TextBox_SomeEvent(ByVal sender As Object, ByVal e As SomeEventArgs) Handles TextBox1.SomeEvent, TextBox2.SomeEvent, .... , TextBoxN.SomeEvent
DirectCast(sender, TextBox).何か操作
End Sub
こんな感じで、Handlesの後に、複数のTextBoxの名前をぞろぞろ書き下せばOKです。
っていうか・・・、これ、ご存知ですよね?
senderをDirectCastすることをご存知なんだから・・・。
(ホームページを再開しました)- 回答としてマーク AIUEO999 2011年10月27日 14:54
すべての返信
-
NF64様スミマセン。私の勘違いでした。コピー、ペースト、カットはなにもしなくてもできるようですが、全て選択ctrl+Aはできないかと思いますが、合っていますか?Private Sub txtAGet_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtDGet.KeyDownIf e.KeyCode = Keys.A AndAlso e.Control Then
DirectCast(sender, TextBox).SelectAll()End If
End SubtxtAGet_KeyDowntxtBGet_KeyDowntxtCGet_KeyDown・・・・にそれぞれ書かなくても良い方法はありますでしょうか?宜しくお願いします。 -
-
外池と申します。Ctrl + C、V、X、Aの操作をするためにプログラムを書き下す必要があるかどうかは別にして・・・、
複数のTextBoxのいずれかひとつでイベント「SomeEvent」が起きたときの処理を、一気に書く方法を、一般論で書いておきます。
Sub TextBox_SomeEvent(ByVal sender As Object, ByVal e As SomeEventArgs) Handles TextBox1.SomeEvent, TextBox2.SomeEvent, .... , TextBoxN.SomeEvent
DirectCast(sender, TextBox).何か操作
End Sub
こんな感じで、Handlesの後に、複数のTextBoxの名前をぞろぞろ書き下せばOKです。
っていうか・・・、これ、ご存知ですよね?
senderをDirectCastすることをご存知なんだから・・・。
(ホームページを再開しました)- 回答としてマーク AIUEO999 2011年10月27日 14:54
-
-
ご返答ありがとうございます!!
>っていうか・・・、これ、ご存知ですよね?
>senderをDirectCastすることをご存知なんだから・・・。
私が貼り付けたコードもどこかからの拝借だったので、きちんと理解はしておりませんでした(^_^;)
ありがとうございます。頂いたコードを参考にがんばってみます。
まだまだわからないことばかりで先輩方にご迷惑お掛けします。今後とも宜しくお願いします。