0

我的列表框中有 8 个文本框用于输入...为了方便用户,我使用了以下代码

    private void txtFirstName_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
    {
        if (e.Key == Key.Enter || e.PlatformKeyCode == 0x0A)
        {
            e.Handled = true;
            txtLastName.Focus();
        }
    }

因此,每当用户在第一个文本框中完成输入并自动按 Enter 下一个文本框获得焦点并且用户可以继续输入数据...无需再次选择下一个文本框

但问题出在 8 个文本框中,屏幕上只有 5 个文本框,因此如果用户在第 5 个文本框和第 6 个文本框中单击输入,则需要向下滚动 6 个输入列表框获得焦点,它不会显示在屏幕上,但在第 5 个文本框之后有一个黑色空间从下方出现并一直持续到最后一个文本框....但是输入在任何地方都正确输入,只是在键入和自动对焦时最后三个框出现在屏幕上而不是出现黑屏....

但是当我删除自动对焦并且用户必须亲自单击文本框并开始输入输入时,这不会发生所以这里的实际问题是什么我做错了什么?

4

1 回答 1

1

您应该尝试使用 listBox.ScrollIntoView(itemInWhichTheTextBoxIsIn); 在将焦点设置在 TextBox 上之前,将 ListBox 中的项目滚动到视图中。

于 2013-09-16T18:12:40.830 回答