我有一個文本框和一個按鈕。在文本框中,我想輸入文本,然後可以點擊輸入並按下我的按鈕。當我按下按鈕我可以重定向到文本框使用button1.Focus();
如何在文本框中輸入文本,然後按回車鍵單擊按鈕?
現在,如果我輸入文本,然後按回車沒有任何反應。我可以使用Tab切換到一個按鈕,但我只是想知道我是否可以按Enter鍵代替。
任何想法?
我有一個文本框和一個按鈕。在文本框中,我想輸入文本,然後可以點擊輸入並按下我的按鈕。當我按下按鈕我可以重定向到文本框使用button1.Focus();
如何在文本框中輸入文本,然後按回車鍵單擊按鈕?
現在,如果我輸入文本,然後按回車沒有任何反應。我可以使用Tab切換到一個按鈕,但我只是想知道我是否可以按Enter鍵代替。
任何想法?
在表單的屬性中,將該按鈕設置爲AcceptButton
屬性的值。
您可以將KeyPressed事件添加到您的文本框中。在這個事件中檢查按下的鍵是否被輸入,如果是,則調用按鈕的單擊事件。
一個簡單的解決辦法是:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Click!");
}
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
button1_Click(textBox1, new EventArgs());
}
如果您在多個地方使用此我建議創建包含TextBox
和Button
爲了封裝這一行爲的用戶控件。
我認爲這種方式對於您的問題是一個非常聰明的例程。此過程還允許您檢查TAB印刷機。它是通過直接從剪斷方式:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.isinputkey.aspx
你說得對通過簡單地將微軟樣品Key.Enter在改變Keys.Tab。請記住,當此文本框與AutoComplete例程一起使用時,可以方便地在構造函數之外或構造函數重載中對其進行實例化。這是文本框的實例化的樣子: ReturnTextBox returntextbox = new ReturnTextBox();
using System.Windows.Forms;
public class Form1 : Form
{
public Form1()
{
FlowLayoutPanel panel = new FlowLayoutPanel();
ReturnTextBox returntextbox = new ReturnTextBox();
returntextbox.Text = "returntextbox";
panel.Controls.Add(returntextbox);
TextBox textBox1 = new TextBox();
textBox1.Text = "Normal TextBox";
panel.Controls.Add(textBox1);
this.Controls.Add(panel);
}
}
class ReturnTextBox : TextBox
{
protected override bool IsInputKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
return true;
}
else
{
return base.IsInputKey(keyData);
}
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
this.SelectedText = " ";
}
else
{
base.OnKeyDown(e);
}
}
}