2014-01-27 97 views
0

我在c#窗口中創建了一個用戶控件,窗體中稱爲chatWindow,它有一個帶有背景的文本框。我在MainForm上放置了這個用戶控件四次,分別是uc1,uc2,uc3,uc4。在MainForm上我也有其他控件。現在我想要當用戶按Tab鍵時,應該設置uc1文本框的焦點。應該設置uc2文本框的第二次按下標籤焦點,並且也適用於第3和第4個標籤頁。將焦點設置到用戶控件中的文本框中#

我試圖設置這些用戶控件的TabIndex,但無法取得成功。我不知道如何在MainForm中獲取用戶控件的文本框屬性。

+0

你只是想通過usercontrols選項忽略表單上的其他控件? –

+0

是的我想要這個 –

+0

爲什麼不考慮設置tabIndex? – User2012384

回答

3

可以定義一個變量來存儲標籤印刷機數,在類級別定義它Form類的內部:

int count = 0; 
Form's KeyDown事件

然後執行以下操作:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{ 
     if (e.KeyCode == Keys.Tab) 
     { 
      switch (count) 
      { 
       case 0: 
        this.ActiveControl = uc1TextBox; 
        count++; 
        break; 
       case 1: 
        this.ActiveControl = uc2TextBox; 
        count++ 
        break; 

       // and so on... 
      } 
     } 
} 
+0

uc1TextBox.Focus()也可以使用! – Swanand

+0

uc1TextBox在用戶控制中,但我在MainForm中;我怎麼能得到這個屬性? –

+0

@ZaheerMehmood然後嘗試使用前面評論中提到的textBox的Focus方法。或者您的用戶控件有一個ActiveControl屬性嘗試設置它。 –

0

第一設置標籤訂單並確保您要選擇的所有控件都將其TabStop屬性設置爲true

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
    if (e.KeyCode == Keys.Enter) 
    { 
      e.Handled = true; 
      this.ProcessTabKey(true); 
    } 

    } 
+0

uc1TextBox在用戶控制中,但我在MainForm中;我怎麼能得到這個屬性? –

+0

我有在MianForm中的用戶控件的實例,但我非常喜歡uc1.textbox1.setFocus()等 –

0

嘗試改爲, 簡單地, 在設計模式下,從屬性資源管理器將uC1的tabIndex值設置爲0,將uc2設置爲1,將uc3設置爲2,將uc4設置爲3,並將其tabstop屬性設置爲true。 希望這已經足夠。 謝謝。

相關問題