我想知道为什么这段代码不能聚焦文本框...?
private void sendEmail_btn_Click(object sender, EventArgs e)
{
String sendTo = recipientEmail_tbx.Text.Trim();
if (!IsValidEmailAddress(sendTo))
{
MessageBox.Show("Please Enter valid Email address","Cognex" MessageBoxButtons.OK, MessageBoxIcon.Error);
recipientEmail_tbx.Focus();
}
}发布于 2011-01-04 21:39:38
请改用Select():
recipientEmail_tbx.Select();Focus是一种低级方法,主要用于自定义控件作者。相反,应用程序程序员应该对子控件使用选择方法或ActiveControl属性,或者对窗体使用Activate方法。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.focus.aspx
发布于 2017-11-18 18:18:42
添加延迟一些miliSec。延迟,然后调用Focus(),并且不要忘记放在Dispatcher内部。
Task.Delay(100).ContinueWith(_ =>
{
Application.Current.Dispatcher.Invoke(new Action(() =>
{
TextBoxNAme.Focus();
}));
});发布于 2014-07-30 18:27:40
即使我尝试了很多上面的解决方案,但没有一个对我有效,因为我试图专注于页面加载。最后,我得到了这个解决方案,它起作用了。
private void txtBox_LayoutUpdated(object sender, EventArgs e)
{
txtBox.Focus();
}https://stackoverflow.com/questions/4594194
复制相似问题