2012-11-29 27 views
-1

有什麼辦法,我可以送左擊事件爲TextBox?對什麼都的原因,雖然我做了TextBox.Focus()和光標在TextBox內閃,但是我不能開始它打字,但如果我做了一個額外的點擊與文本框裏面的鼠標,那麼我就可以開始打字。那麼,我想知道如何將該事件發送給它?發送LeftClick事件文本框

+0

張貼[這裏] [1],使用。選擇(),而不是 [1]:http://stackoverflow.com/問題/ 4594194 /文本框對焦 - 不工作 - 在-C-尖銳 –

+0

作爲張貼[這裏] [1],使用.'select()'代替 [1]:HTTP://計算器.com/questions/4594194/textbox-focus-not-working-in-c-sharp –

+0

我試過選擇,那也沒用。 – Bohn

回答

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位置。

感謝,
有一個偉大的一天:)

0

確定先解決這個問題,我們應該確保itsself被激活的形式。 要做到這一點,在Form_Shown情況下,我們應該叫this.Activate()