【问题标题】:How to focus the textbox by selecting an item in a listview?如何通过选择列表视图中的项目来聚焦文本框?
【发布时间】:2011-02-17 06:50:04
【问题描述】:

我在聚焦文本框时遇到问题。当我从列表视图中选择特定项目时,我想聚焦文本框。 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);
    }

【问题讨论】:

    标签: c# winforms focus


    【解决方案1】:

    Click 和 Mouseclick 事件发生在 listview 的 SelectedIndexChanged 事件之后,因此如果您在 SelectedIndexChanged 中有 textbox.focus,则焦点会在 click 或 mousclick 事件之后返回到 listview。如果您将 textbox.focus 添加到 listview mouseclick 事件,焦点将最终落在文本框上(即使它去了两次)。

    【讨论】:

    • 谢谢你。这就是为什么在 selectedindexchanged 事件中,它就像突出显示文本框然后最终它会失去焦点。
    • 将 textbox.focus 添加到 listview mouseclick 事件中。
    【解决方案2】:

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

    【讨论】:

    • 列表视图没有选中索引
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多