我的列表框中有8个TextBox用于输入...为了方便用户,我使用了以下代码
private void txtFirstName_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.Enter || e.PlatformKeyCode == 0x0A)
{
e.Handled = true;
txtLastName.Focus();
}
}
所以每当用户在第一个文本框中完成输入时按下自动进入下一个文本框获取焦点&用户可以继续输入数据...无需再次选择下一个文本框
但问题出在8个文本框中,屏幕上只有5个文本框,因此如果用户点击输入第5个文本框,则6个输入列表框需要向下滚动。第6个文本框获得焦点,它显示在屏幕上,但在第5个文本框之后,有一个黑色空间从下方和它一直持续到最后一个文本框....但输入正确输入到处输入&自动对焦最后三个盒子显示在屏幕上,而不是出现黑屏....
但是当我删除自动对焦&用户必须亲自点击文本框&开始输入输入,所以这里的实际问题是我做错了什么?
答案 0 :(得分:1)
你应该尝试使用listBox.ScrollIntoView(itemInWhichTheTextBoxIsIn);在将Text关注设置为TextBox之前,将ListBox中的项目滚动到视图中。