我在c#窗口中創建了一個用戶控件,窗體中稱爲chatWindow,它有一個帶有背景的文本框。我在MainForm上放置了這個用戶控件四次,分別是uc1,uc2,uc3,uc4。在MainForm上我也有其他控件。現在我想要當用戶按Tab鍵時,應該設置uc1文本框的焦點。應該設置uc2文本框的第二次按下標籤焦點,並且也適用於第3和第4個標籤頁。將焦點設置到用戶控件中的文本框中#
我試圖設置這些用戶控件的TabIndex,但無法取得成功。我不知道如何在MainForm中獲取用戶控件的文本框屬性。
我在c#窗口中創建了一個用戶控件,窗體中稱爲chatWindow,它有一個帶有背景的文本框。我在MainForm上放置了這個用戶控件四次,分別是uc1,uc2,uc3,uc4。在MainForm上我也有其他控件。現在我想要當用戶按Tab鍵時,應該設置uc1文本框的焦點。應該設置uc2文本框的第二次按下標籤焦點,並且也適用於第3和第4個標籤頁。將焦點設置到用戶控件中的文本框中#
我試圖設置這些用戶控件的TabIndex,但無法取得成功。我不知道如何在MainForm中獲取用戶控件的文本框屬性。
可以定義一個變量來存儲標籤印刷機數,在類級別定義它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...
}
}
}
uc1TextBox.Focus()也可以使用! – Swanand
uc1TextBox在用戶控制中,但我在MainForm中;我怎麼能得到這個屬性? –
@ZaheerMehmood然後嘗試使用前面評論中提到的textBox的Focus方法。或者您的用戶控件有一個ActiveControl屬性嘗試設置它。 –
第一設置標籤訂單並確保您要選擇的所有控件都將其TabStop屬性設置爲true
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.Handled = true;
this.ProcessTabKey(true);
}
}
uc1TextBox在用戶控制中,但我在MainForm中;我怎麼能得到這個屬性? –
我有在MianForm中的用戶控件的實例,但我非常喜歡uc1.textbox1.setFocus()等 –
嘗試改爲, 簡單地, 在設計模式下,從屬性資源管理器將uC1的tabIndex值設置爲0,將uc2設置爲1,將uc3設置爲2,將uc4設置爲3,並將其tabstop屬性設置爲true。 希望這已經足夠。 謝謝。
你只是想通過usercontrols選項忽略表單上的其他控件? –
是的我想要這個 –
爲什麼不考慮設置tabIndex? – User2012384