我想知道如何將光標從當前文本框移動到上一個文本框。我通過逐個輸入按鍵事件動態創建文本框通過按退格移動到當前文本框
例如,
TextBox1的
TextBox2中
textbox3
假設共有三個文本框現在創建和我的第三個文本框意味着我對textbox3光標,我想將光標移動到TextBox2中或重點放到textbox2進行修改。
我該怎麼辦?請爲此建議適當的代碼。
我想知道如何將光標從當前文本框移動到上一個文本框。我通過逐個輸入按鍵事件動態創建文本框通過按退格移動到當前文本框
例如,
TextBox1的
TextBox2中
textbox3
假設共有三個文本框現在創建和我的第三個文本框意味着我對textbox3光標,我想將光標移動到TextBox2中或重點放到textbox2進行修改。
我該怎麼辦?請爲此建議適當的代碼。
foreach(var tbox in new[]
{
tbox0, tbox1, tbox2
})
{
tbox.KeyPress += (sender,e) => keypressed(sender,e);
}
private void keypressed(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Back)
((Control)sender).GetNextControl((Control)sender, false).Select(); // .Focus()
}
如果標籤訂單設置正確,您可以使用GetNextControl方法移動查找上一個控件。
要謹慎,因此不會造成問題的可用性,如使用空格鍵刪除最後一個字母,也將跳轉到以前的控制,這將挫敗任何用戶!
只有跳控制,如果電流控制文本是空的,用戶按下退格鍵:
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if ((e.KeyCode == Keys.Back) & (((Control)sender).Text.Length == 0))
{
this.SelectNextControl((Control)sender, false, true, true, true);
}
}
退格鍵是爲用戶的重要關鍵編輯,不要惹它。按Tab鍵向前移動,Shift + Tab鍵向後移動。您的用戶很可能已經知道這個快捷方式。
sir, 它是動態創建的文本框,在下一次輸入keypress事件時它會比三個盒子多。 – mahesh 2010-08-04 11:08:38
@mahesh:'var textBox = new TexBox(){TabIndex = ++ i; };' – abatishchev 2010-08-04 11:19:49
thx幫助它會幫助我很多 – mahesh 2010-08-05 06:00:45