2010-10-30 50 views
23

在Windows窗体应用程序中,是否应写入代码以在应用程序启动时以及随后调用函数时将焦点设置为控件?例如,如果我有一个DropDownList,一个文本框和四个按钮,并且我希望将Focus设置为DropDownList,那么我会写我的代码吗?如何将焦点设置为Windows窗体应用程序中的控件?

要将焦点设置为应用程序启动时的特定控件,我可以将Tab索引设置为该DropDown(具有最小值,在假设TabStop属性设置为True的情况下)。

现在,如果用户完成操作(比如,任何一个点击按钮事件),然后我更新下拉之后,如果我想将焦点设置...我可以做到这一点作为

MyDropDownList.Focus() 

问题

注:现在的问题是其中,不怎么

+0

是的,在Click事件处理程序中。那里还有什么? – 2010-10-30 16:22:08

+0

@Hans Passant:用于后续时间(在用户操作之后)。我可以将它写入Click事件处理程序或一个名为UpdateDropDownList()的函数,我在Click事件处理函数内部调用它。但是对于初始加载,我在哪里编写它?在InitializeComponent()中或之后被调用? – Kanini 2010-10-30 16:28:41

回答

52

到目前为止,最简单的解决方案是正确设置TabIndex属性,以便您的'MyDropDownList'控件具有最低的索引。下一个方法是在构造函数中完成它。但是你必须使用Select(),Focus()方法不能工作,因为直到后来控件才会变得可见。

Public Sub New() 
    InitializeComponent() 
    MyDropDownList.Select() 
End Sub 

也适用于Load事件。 Focus()开始在Shown事件中工作。

+0

+1,因为我需要将它放在Load事件中才能使其在我的C#应用​​程序中工作! – Hybrid 2012-09-27 17:42:15

+0

我真的很喜欢使用.Select()。那正是我需要的。 – jeromeyers 2014-10-31 19:12:01

相关问题