我有两个文本框txtdays
和txtnoofPer
TabIndex
分别为55和56。
但是当我进入它时,它不起作用。
我尝试了KeyDownEvent
private void txtdays_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Enter)
{
txtnoofPer.Select();
}
}
而不是移动到下一个标签索引,而是转移到其他一些文本框..
答案 0 :(得分:1)
TabIndex:" 获取或设置一个值,该值确定当用户使用TAB键浏览控件时元素获得焦点的顺序。" 因此,当您按Tab键而不是Enter键时,它将转到下一个文本框。
更新:如果要对该操作使用Enter键,可以使用:
if(Keys.Enter == e.KeyCode)
{
SendKeys.Send("{TAB}");
e.Handled = true;//set to false if you need that textbox gets enter key
}
来源:http://www.codeproject.com/Questions/440784/go-to-next-tab-index-by-enter
答案 1 :(得分:1)
要实现此逻辑,要输入命中,请尝试以下代码示例:
private void txtdays_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Enter)
{
var control = this.Controls
.Cast<Control>()
.Where(r => r.TabIndex == txtdays.TabIndex + 1).First();
control.Focus();
}
}
答案 2 :(得分:0)
使用焦点。
txtnoofPer.Focus();
答案 3 :(得分:0)
使用此
private void txtdays_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
txtnoofPer.Focus();
txtnoofPer.Select(0, txtnoofPer.Text.Length);
}
}
答案 4 :(得分:0)
我用新的
替换文本框解决了这个问题答案 5 :(得分:0)
如果未触发txtdays_KeyDown事件。使用debug看到它。
然后启用Form Property,称为KeyPreview。将值设置为true。
然后你应该调用这个函数ProcessTabKey(true);
答案 6 :(得分:0)
在设计视图中转到视图 - &gt; Tab Order
按照您要通过它们的顺序点击控件上的数字
问题有时是父控制,例如面板有一个标签索引,干扰你想要实现的目标