如何通过选择列表视图中的项目来聚焦文本框?

时间:2011-02-17 06:50:04

标签: c# winforms focus

我在关注文本框时遇到了问题。当我从列表视图中选择特定项目时,我想要关注文本框。当我使用键盘上的向上箭头时,Focus()将起作用,但当我使用鼠标时,它不起作用。

   ***EDIT***

    private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        textBox1.Focus();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        ListViewItem lvi = new ListViewItem("A");
        lvi.SubItems.Add("AA");

        listView1.Items.Add(lvi);

        ListViewItem lvi1 = new ListViewItem("B");
        lvi1.SubItems.Add("BB");

        listView1.Items.Add(lvi1);
    }

2 个答案:

答案 0 :(得分:2)

Clickview和Mouseclick事件发生在listview SelectedIndexChanged事件之后,因此如果您在SelectedIndexChanged中有textbox.focus,则焦点会在click或mousclick事件后返回到listview。如果将textbox.focus添加到listview鼠标点击事件,焦点将最终出现在文本框中(即使它在那里进行了两次)。

答案 1 :(得分:0)

在SelectedIndexChanged事件处理程序中,首先测试this.listView1.SelectedIndex> -1,如果是,则执行this.textBox1.Focus()