gpt4 book ai didi

c# - 如何从另一个窗体将焦点设置到主窗体中的对象(文本框)(C#)

转载 作者:行者123 更新时间:2023-12-02 17:45:19 25 4
gpt4 key购买 nike

我尝试了我所知道的一切。问题一定是我的文本框位于组框中。我有一个主窗体,我可以从它转到另一个窗体。当我返回 Mainform 时,我希望聚焦某个特定对象。这是怎么做到的?这是我的 Mainform 中的代码。

    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。我在 Mainform LoadShow 下尝试了 textBox1.Focus();this.ActiveControl = this.textBox1;ActivatedEnter 事件。还是没用。我尝试创建一个公共(public)方法并在Form1的退出按钮下调用它。像这样。

在主窗体中,

    public void textBox1Focus()
{
textBox1.Focus();
}

然后在 Form1 中,

    private void button3_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
Mainform frm = new Mainform();
frm.textBox1Focus();
}

这仍然不起作用。我的 textBox1 在组框中。难道是这个原因吗?

谢谢。

最佳答案

我不明白你所展示的代码是如何编译的。您正在从 Form1 类中定义的方法内部调用 textBox1Focus() ,据我所知,该方法不包含 textBox1Focus 的定义。该方法仅在 Mainform 类中定义。

不,将文本框放置在组框中并不会阻止它获得焦点。您的代码还有其他问题。很难说;我感觉自己是透过百叶窗而不是大观景窗看日落。

无论如何,我怀疑有一个更简单的解决方案。只需将焦点设置到 button1_Click 方法末尾的文本框控件即可。 ShowDialog 方法是阻塞调用,这意味着在用户关闭第二个表单之前不会继续执行。发生这种情况时,将继续执行下一行代码,这会将焦点设置到文本框控件。

尝试将代码更改为以下内容:

private void button1_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
frm.ShowDialog();
this.textBox1.Select();
}

关于c# - 如何从另一个窗体将焦点设置到主窗体中的对象(文本框)(C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com