C#选择程序的表格

扬·H

我想选择应用程序的形式以在其中编辑文本框的设置。我曾经Form.ActiveForm为此。当窗体处于前台时,这种方法效果很好,但是当未选中它时,它将不再起作用。有没有办法让应用程序保持当前状态,即使它在后台?

编辑:这是一些代码:

var form = Form.ActiveForm as MainForm;
if (form != null)
{
    form.txtChatOutput.Text += p.Data[0] + "\r\n";
}

编辑2:

我找到了一个简单的解决方案。声明一个变量形式myForm;在类中以及在窗体的Shown事件中,将其设置为Form.ActiveForm。

public partial class Form1 : Form
{
    Form myForm;
    ....
    private void Form1_Shown(object sender, EventArgs e)
    {
        myForm = Form.ActiveForm;
    }
}

然后,即使不再选择它,也可以使用myForm访问您的表单。

普萨·庞杰伦德拉普(PssaPøngjǣrdenlarp)

尽管提供的方法Edit 2可以使用,但还有更直接的方法。

public partial class Form2 : Form
{
    Form1 mainFrm;

    public Form2(Form1 frm)
    {
        InitializeComponent();
        mainFrm = frm;
    }
    ...
}

更改“子”表单的构造函数,以使用arg来指示所有者/父表单或主表单,并将其存储为var类。始终必须告知其父/主表单的表单执行此操作。要同时使用两种形式,只需以上内容添加为重载的ctor。使用它:

using (Form2 frm = new Form2(this) )
{
    frm.ShowDialog();
}

如果/当您的应用是类驱动而非表单驱动的,则可以Main通过将主表单引用传递给构造函数中的类来执行类似的操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章