C# Winform 設定焦點控制元件的兩種方式和注意事項

花GE發表於2024-06-15

一、方法
//設定本窗體的活動控制元件為某個控制元件
this.ActiveControl = this.button2;

//呼叫Focus方法設定某個控制元件獲取焦點
this.button2.Focus();

二、注意事項
1、在窗體例項化——載入——繪製——顯示完畢四個過程中使用兩種方法設定效果有區別,具體如下:

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//this.ActiveControl = this.button2;//生效
//this.button2.Focus();//不生效(在建構函式里使用,不生效)
}

private void Form1_Load(object sender, EventArgs e)
{
//this.ActiveControl = this.button2;//生效
//this.button2.Focus(); //不生效(在載入事件裡使用,不生效)
}

private void Form1_Shown(object sender, EventArgs e)
{
//this.ActiveControl = this.button2;//生效
//this.button2.Focus(); //生效(在顯示事件裡使用,生效)
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
//this.ActiveControl = this.button2;//生效
this.button2.Focus(); //生效(在繪製函式里使用,生效)
}
}
}

相關文章