[C#.NET][VB.NET] Form.AcceptButton 屬性 能做什麼?

  • 12992
  • 0
  • C#
  • 2009-07-29

[C#.NET][VB.NET] Form.AcceptButton 屬性 能做什麼?

1.Form.AcceptButton 屬性:取得或設定使用者按下 ENTER 鍵時所按下的表單上按鈕,指派至這個屬性的按鈕必須是在目前表單上或位於目前表單上容器內的IButtonControl(也就是只有按鈕能用它)

private void Form1_Load(object sender, EventArgs e)
{
this.AcceptButton = this.button2;
this.CancelButton = this.button3;
}

詳細看MSDN

這個屬性允許您指定當使用者在應用程式中按下 ENTER 鍵時所發生的預設動作。指派至這個屬性的按鈕必須是在目前表單上或位於目前表單上容器內的 IButtonControl

您可以使用這個屬性允許使用者在完成時輕易地按下 ENTER 鍵,代替用滑鼠手動地按一下接受按鈕,好讓他們能夠快速地巡覽簡單表單。

如果目前在表單上選取的控制項會攔截 ENTER 鍵並作處理,則不可以啟動接受按鈕。例如,當選取它以插入新行字元 (New Line Character) 至控制項中時,多行文字方塊控制項允許按下 ENTER 鍵。

 

想像一下如果使用者在 textBox 填好資料後,不用滑鼠,按 Enter 就能執行下一步的動作,是不是蠻方便的。

  

3.Form.AcceptButton 屬性 :就是在抓你按下Enter鍵後,所要執行的按鈕事件,經我實測發現這鬼東西在Form上的焦點要在非按鈕上才有用喔!搭配 Focus方法 彈性又更大了。

  
  
static int j=1;
static int i=1;
static int k = 1;
private void Form1_Load(object sender, EventArgs e)
{
this.AcceptButton = this.button1;
this.textBox1.Focus();
this.textBox1.Select();
this.CancelButton = this.button3;
}

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "按下了 button1: " +j.ToString()+" 次";
this.textBox2.Focus();
//this.textBox2.Select();
j++;
this.AcceptButton = this.button2;
}

private void button2_Click(object sender, EventArgs e)
{
textBox2.Text = "按下了 button2: " +i.ToString()+" 次";
this.textBox1.Focus();
//this.textBox1.Select();
i++;
this.AcceptButton = this.button1;
}
private void button3_Click(object sender, EventArgs e)
{
textBox3.Text = "按下了 ESC: " + k.ToString() + " 次";
k++;
}

6.範例下載:

Form.AcceptButton.rar

 

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo