有什么办法可以将左键单击事件发送到TextBox
?出于什么原因,虽然我正在做 aTextBox.Focus()
并且光标在里面闪烁,TextBox
但我无法开始输入,但是如果我在文本框中用鼠标额外单击,那么我可以开始输入。所以,我想知道如何将该事件发送给它?
问问题
514 次
2 回答
1
要发送鼠标事件,您需要导入user32.dll
并使用mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
例子
class Mouse
{
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
private const int MOUSEEVENTF_LEFTDOWN = 0x02; //Left click
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08; //Right click
private const int MOUSEEVENTF_RIGHTUP = 0x10;
public static void sendMouseRightclick(Point p)
{
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, p.X, p.Y, 0, 0); //Sends a mouse right click at the specified Point
}
public static void sendMouseClick(Point p)
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, p.X, p.Y, 0, 0); //Sends a mouse left click at the specified Point
}
}
使用此功能时,您可以调用Mouse.sendMouseClick(Point p)
以在指定点发送鼠标左键单击。
在您的情况下,我认为您可能希望使用Mouse.sendMouseClick(TextBox.Location);
鼠标左键单击当前TextBox
位置。
谢谢,
祝你有美好的一天:)
于 2012-11-29T23:10:37.697 回答
0
好的,首先要解决这个问题,我们应该确保表单本身已激活。为此,在 Form_Shown 事件中,我们应该调用 this.Activate()
于 2012-11-29T22:02:36.940 回答