1

我正在尝试在 VB.NET 表单中创建一个复制粘贴实用程序,我从任何地方选择文本,将其拖到文本框,然后它会自动以纯文本形式复制到剪贴板。我希望它设置,以便当窗口打开并单击它时,执行此行:

CopyBox.SelectAll()

但是我尝试过的所有事件都没有奏效。我尝试过使用 MyBase.LostFocus、MyBase.Leave、MyBase.Deactivate,但是当我在表单外单击时,它们都不会被触发。如果我最小化表单,它们就可以工作,但这没有帮助。有没有办法做到这一点?

4

2 回答 2

1

在鼠标 Keydown 事件中,检查光标相对于表单的位置。如果它在外面,只需执行所需的功能。

根据我的评论

Declare Auto Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Short

While True
  If GetAsyncKeyState(1) <> 0 Then
        MsgBox("click")
  End If
  System.Threading.Thread.Sleep(150) 
End While
于 2013-07-24T19:33:24.463 回答
0

您是否尝试过“表单”本身的停用事件而不是文本控件?

于 2013-07-24T19:45:49.143 回答