2012-03-17 29 views
0

我在winform上有一些按鈕,一個文本框和一個datagridview。
我希望當窗體顯示在屏幕上把光標放在文本塊上,
爲此我使用txtName.Focus()。
但是,每次從加載文本框不重點時,實際上dagaridview會將焦點放在自身上。
如何解決它。如何在winform中忽略datagridview

+0

在錯誤的時間調用Focus()是常見的問題,例如窗口在Load事件中不可見時。改用Select()。 – 2012-03-17 15:49:48

回答

2

只需更改控件的tabindex屬性即可。
請注意直接使用tabindex屬性,因爲如果您的控件包含在其他控件(組框或面板)中,可能會產生誤導。
使用菜單View和TabOrder工具。
將您的文本框放入製表符中。無需任何代碼

3

你應該設置控件的TabIndex財產的形式(您TextBox例如應具備的最低TabIndex使加載窗體時它會自動具有焦點)

3
private void Form1_Load(object sender, EventArgs e) 
     { 
      dataGridView1.TabStop = false; 
      textBox1.TabIndex = 0; 
     } 

希望它的幫助

0

你必須確保頁面已經加載之前給文本框的焦點。因此,爲Form的Load事件添加一個事件。

你可以做到這一點的設計師,或者在後面的代碼如下所示:

this.Load += new EventHandler(Form1_Load); 

在加載事件,呼籲你的文本選擇。

private void Form1_Load(object sender, EventArgs e){ 
    txt_Name.Select(); 
} 

SELECT命令可以選擇多少,你選擇的文本。例如,選擇第一個字母開始索引0將是txt_Name.Select(0,0)。更多的信息在 MSDN

或者,您可以使用tabindex屬性爲0,以確保它首先獲得焦點(按照ionden)。