C#在Listview的SelectedIndexChange事件中调用文本框焦点会在事件完成后失去焦点

3

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

this.ActiveControl = theTextBoxControl;

我可以看到焦点转移到文本框,但只持续了一瞬间,一旦事件完成,焦点就返回到列表视图。 有任何想法如何解决这个问题吗?

1个回答

1

你可以创建并设置一个标志为true,例如:needToFocusTextBox。然后在ListView的onFocus事件中执行以下操作。

if (needToFocusTextBox)
    this.ActiveControl = theTextBoxControl;

或者你可以在SelectedIndexChange事件中分配onFocus处理程序。然后在处理完onfocus后将其删除。


这个可以运行,但如果可能的话,我宁愿不使用全局变量。如果我想不出其他办法,我就会采用这种方法。 - Scott Chantry
@Scott Chantry,我在我的回答中添加了一种替代方案。它不使用全局变量。 - Fun Mun Pieng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接