2016-04-02 94 views
0

我正在製作Windows窗體應用程序,並且在應用程序啓動時光標位於錯誤的文本框中。c#窗體窗體應用程序中的焦點或選擇文本框

我試過在網上搜索一些其他問題,但似乎沒有爲我工作。

我試過inputBox.Focus(); bot在Initialize Component之後,我也在我的輸入框方法中嘗試了這一點,並且我嘗試了inputBox.Select();在一些地方也是如此。這似乎沒有什麼區別。

我也看到,你可以設置文本框的標籤索引爲零,但不幸的是我不明白。我無法在Visual Studio中的任何位置找到此選項。我想這將在設計器中的文本框的屬性。我看錯了地方?或者我應該尋找不同的解決方案?

這裏是我的代碼:

namespace Project_9 
{ 
public partial class Form1 : Form 
{ 
    const int MAX = 10; 
    Bowling objectRef; 
    public Form1() 
    { 
     InitializeComponent(); 
     objectRef = new Bowling(10); 

    } 
    private void aboutToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     Close(); 
    } 
    private void aboutToolStripMenuItem1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Jonathan Spalding\nCS1400\nProject 9"); 
    } 
    private void inputBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyData == Keys.Enter) 
     { 
      string text = inputBox.Text; 
      if (text == "") 
      { 
       highScoreBox.Text = objectRef.GetHighScorePlayer() + ": " + string.Format("{0:d}", objectRef.GetHighScore()); 
       lowScoreBox.Text = objectRef.GetLowScorePlayer() + ": " + string.Format("{0:d}", objectRef.GetLowScore()); 
       averageScoreBox.Text = string.Format("{0:f2}", objectRef.GetAverageScore()); 
      } 
      else 
      { 
       inputBox.Clear(); 
       objectRef.AddPlayer(text); 
      } 
     } 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     inputBox.Focus(); 
    } 
} 

}

+0

您能否向我們提供您的代碼? –

+0

當然!我只是編輯它以包含代碼。 –

回答

0

選擇文本框。在屬性窗口中找到TabIndex(如果找不到它,請按照小紅色矩形對AZ中的屬性進行排序。

確保: 1. TabIndex是與其他控件相比最小的值。在我的例如兩個組合框每一個都有一個tabIndex值) 2.接受tab值爲True

enter image description here

0

在Load事件

ActiveControl = inputBox; 
+0

謝謝Scott!我從來沒有見過這種選擇。我也嘗試過,它效果很好! –

0

您可以將TabIndex屬性設置爲一個值大於0王氏最低值控制將重點放在啓動。 然後,您可以在其他控件上設置TabIndex,以便在按下Tab鍵時,下一個控件(具有較高的TabIndex)將獲得焦點。

0

在窗體構造函數中,你可以使用:

public Form1() 
{ 
    InitializeComponent(); 

    inputBox.Focus(); 
} 

public Form1() 
{ 
    InitializeComponent(); 

    inputBox.Focus(); 
    inputBox.Select(); 
} 
+1

謝謝LP!它一定是我的用戶錯誤,或只是一些越野車。我試了兩個inputBox.Focus();和inputBox.Select();早。我在表單構造函數中嘗試了InputBox.Select,並且它在這次工作,但.Focus()仍然不適用於我。無論哪種方式,我得到它的工作。我喜歡改變TabIndex的選項,所以我使用它。 –

0

我認爲最好的方法是通過點擊鼠標在控件上設置TabIndex。只要去查看菜單,然後到TabIndexOrder菜單選項。 然後,只需單擊表單上表示的TabIndex,就可以設置TabIndex順序。 完成後,再次選擇TabIndexOrder菜單選項退出幫助程序。

相關問題