-1

左クリックイベントをに送信する方法はありますTextBoxか?理由は何であれTextBox.Focus()、カーソルが内部で点滅しているのTextBoxに入力を開始できませんが、テキストボックス内でマウスを追加クリックすると、入力を開始できます。それで、私はそのイベントをそれに送る方法を考えていましたか?

4

2 に答える 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 に答える