2013-03-03 30 views
0

我想要發生的是,當一個文本框被點擊一個彈出式鍵盤將顯示,無論我在鍵盤上鍵入將被推入文本框,但什麼也沒有發生,但當我使用記事本時,它工作。我怎樣才能解決這個問題?創建自定義彈出式鍵盤沒有按鍵時發生

這裏是我的主要形式代碼:

private void textBox1_MouseClick(object sender, MouseEventArgs e) 
    { 
     Form1 frm1 = new Form1(); 
     frm1.ShowDialog(); 
    } 

這裏是我的彈出式鍵盤

public partial class Form1 : Form 
{ 
    const int WS_EX_NOACTIVATE = 0x08000000; 
//this line of code fixed the issue 
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")] 
     public static extern IntPtr GetDesktopWindow(); 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    protected override CreateParams CreateParams 
    { 
     get 
     { 
      CreateParams param = base.CreateParams; 
      param.ExStyle |= WS_EX_NOACTIVATE; 


//This line of code fix the issues 
param.Style = 0x40000000 | 0x4000000; 
       param.Parent = GetDesktopWindow(); 

      return param; 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     SendKeys.Send("1"); 
    } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     SendKeys.Send("2"); 
    } 

    private void button4_Click(object sender, EventArgs e) 
    { 
     SendKeys.Send("3"); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 

    } 
} 
+0

有一個屏幕上的鍵盤封裝,已窗口,任何具體的原因滾動自己? – 2013-03-03 02:48:29

+1

@Tririar,我只需要數字 – 2013-03-03 02:49:19

+0

我終於有這個解決方案,我不能回答我自己的問題,所以我只是把問題的答案 – 2013-03-03 05:22:30

回答

0

代碼使用form1.Show() ...不是ShowDialog()

+0

我試過了,並不工作 – 2013-03-03 03:47:32

0

如果您手動添加的testbox請確保你像這樣鉤入MouseEventHandler:

this.textBox1.MouseClick + = new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseClick);

當您的表單加載。

+0

沒有任何反應,我仍然無法投入文本框是什麼我在彈出的鍵盤上點擊 – 2013-03-03 04:08:58

0

我固定只需添加這行代碼的問題

[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")] 
    public static extern IntPtr GetDesktopWindow(); 

而且

   param.Style = 0x40000000 | 0x4000000; 
      param.Parent = GetDesktopWindow();