如何将焦点从另一个窗体(C#)设置为主窗体中的对象(文本框)
我知道的都试过了。问题一定是我的文本框在groupbox中。我有一个主窗体,从该窗体移到另一个窗体。当我返回Mainform时,我希望聚焦一个特定的对象。这是怎么做到的? 这是我的主窗体中的代码如何将焦点从另一个窗体(C#)设置为主窗体中的对象(文本框),c#,.net,winforms,focus,controls,C#,.net,Winforms,Focus,Controls,我知道的都试过了。问题一定是我的文本框在groupbox中。我有一个主窗体,从该窗体移到另一个窗体。当我返回Mainform时,我希望聚焦一个特定的对象。这是怎么做到的? 这是我的主窗体中的代码 private void button1_Click(object sender, EventArgs e) { Form1 frm = new Form1(); frm.ShowDialog(); } 现在,这就是我如何从Form1返回我的
private void button1_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
frm.ShowDialog();
}
现在,这就是我如何从Form1返回我的主窗体的方法
private void button3_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
我在Mainform中有textBox1。如何在退出Form1并进入Mainform时将焦点设置为textBox1。我试过textBox1.Focus()
和this.ActiveControl=this.textBox1在主窗体下的代码>加载
,显示
,激活
和输入
事件。还是不行。我尝试创建一个公共方法,并在Form1的exit按钮下调用它。像这样
以主要形式,
public void textBox1Focus()
{
textBox1.Focus();
}
然后在表格1中
private void button3_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
Mainform frm = new Mainform();
frm.textBox1Focus();
}
但还是没用。我的文本框1在一个分组框中。这可能是原因吗
谢谢。我不明白你展示的代码是如何编译的。您正在从
Form1
类中定义的方法内部调用textBox1Focus()
,据我所知,该类不包含textBox1Focus
的定义。该方法仅在Mainform
类中定义
不,文本框放在分组框中并不会阻止它获得焦点。你的代码还有其他问题。很难说;我觉得我是通过百叶窗看日落,而不是通过一个大的图片窗口
无论如何,我想有一个更简单的解决办法。只需将焦点设置为按钮1\u单击方法末尾的textbox控件。ShowDialog方法是一个阻塞调用,这意味着在用户关闭第二个表单之前执行不会继续。当这种情况发生时,执行将继续执行下一行代码,这将把焦点设置为textbox控件
尝试将代码更改为以下内容:
private void button1_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
frm.ShowDialog();
this.textBox1.Select();
}
是的,你成功了。您的代码工作成功,我对此表示感谢!对m代码中的错误进行重新分级,很抱歉。那是个小错误。我在问题中编辑并修正了它。但告诉你们,我已经在我的实际代码中正确地完成了它(否则就会显示错误)。这种方法仍然很有效。但是你的把戏确实奏效了:)@nawfal:没问题;很高兴我能帮忙。为了便于将来参考,只需将代码复制并粘贴到问题中就容易多了。这就减少了可能出现的打字错误。我们很难按原样调试代码,因为我们无法在上下文中看到它。你不能只忽略语法错误,因为这些往往是真正的问题!实际上,我复制粘贴我的代码只是为了让代码看起来更理智和简单。但事与愿违;-)