【问题标题】:How to set focus to an object(textbox) in main form from another form (C#)如何从另一个表单(C#)将焦点设置到主表单中的对象(文本框)
【发布时间】:2011-07-23 21:21:02
【问题描述】:

我尝试了我所知道的一切。问题一定是我的文本框在一个组框中。我有一个主窗体,我从它移到另一个窗体。当我返回 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 LoadShowActivatedEnter 事件下尝试了 textBox1.Focus();this.ActiveControl = this.textBox1;。仍然没有工作。我尝试创建一个公共方法并在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 在一个组框中。会不会是这个原因?

谢谢。

【问题讨论】:

    标签: c# .net winforms focus controls


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 是的,你成功了。您的代码成功运行,我对此表示感谢!正在重新评分 m 代码中的错误,对此深表歉意。那是一个小错误。我在我的问题中编辑并修复了它。但是告诉你,我在我的实际代码中正确地完成了它(否则会显示错误)。方法仍然很有效。但你的伎俩成功了:)
    • @nawfal:没问题;很高兴我能帮助你。为了将来参考,将代码复制并粘贴到您的问题中要容易得多。这减少了可能出现的错别字。我们很难调试您的代码,因为我们无法在上下文中看到它。你不能忽略语法错误,因为很多时候这些才是真正的问题!
    • 我实际上是复制粘贴我的代码,只是为了让代码看起来更清晰、更简单。但事与愿违;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多