【问题标题】:C# Calling focus on text box in SelectedIndexChange event of Listview loses focus on event completionC# 在 Listview 的 SelectedIndexChange 事件中调用文本框的焦点失去对事件完成的关注
【发布时间】:2011-03-10 23:26:52
【问题描述】:

我有一个列表视图,当我单击一个项目时,它会调用 SelectedIndexChange 事件,在该事件中,我想将焦点设置在文本框上,因此我调用:

this.ActiveControl = theTextBoxControl;

我可以在一瞬间看到焦点切换到文本框,但一旦事件完成,焦点就会返回到列表视图。任何想法如何解决这个问题?

【问题讨论】:

    标签: c# listview focus


    【解决方案1】:

    您可能会创建一个标志并将其设置为 true,例如:needToFocusTextBox。然后在 ListView 的 onFocus 事件中进行如下操作。

    if (needToFocusTextBox)
        this.ActiveControl = theTextBoxControl;
    

    或者,您可以在 SlectedIndexChange 事件中分配 onFocus 处理程序。处理完 onfocus 后将其删除

    【讨论】:

    • 这行得通,但如果我能提供帮助,我宁愿没有全局变量。如果我想不出其他任何东西,我会选择这个。
    • @Scott Chantry,我为我的答案添加了一个替代解决方案。它不使用全局变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2017-08-20
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多