這似乎對我很好。 TextBox的鬆散焦點,但只要Mouse_UP事件觸發,選定的文本被複制到剪貼板,焦點被髮回到文本框。
Public Class Form1
Dim LostFocusControl As Control
Private Sub RichTextBox1_MouseUp(sender As Object, e As MouseEventArgs) Handles RichTextBox1.MouseUp
If RichTextBox1.SelectedText.Length > 0 Then
Clipboard.SetText(RichTextBox1.SelectedText)
End If
If Not IsNothing(LostFocusControl) Then
LostFocusControl.Focus()
End If
End Sub
Private Sub ControlLostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus
LostFocusControl = Sender
End Sub
End Class
的代碼是一個更長的時間比它可能是,但是這使得它更容易,如果以後要更改焦點將返回到控制。要改變要聚焦返回控制,只是改變了處理程序訂閱控件的名稱,例如
變化
Private Sub ControlLostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus
要
Private Sub ControlLostFocus(sender As Object, e As EventArgs) Handles Listbox1.LostFocus
或任何名稱的控制是你想要返回焦點。