如何将变量的状态传递给子表单?

问题描述 投票:0回答:2

我有一个包含布尔值

unitConnected
的表单。如何将此布尔值的状态传递给我创建并按下按钮打开的子表单?

主窗体代码:

// Global variable
public bool unitConnected = false;

private void buttonOpenSubForm_Click(object sender, EventArgs e)
{
    unitConnected = true;

    SubForm subForm= new SubForm();

    if (subForm.ShowDialog(this) == DialogResult.OK)
    {
        // Do something
    }
}

子表单代码:

private MainForm mainForm = new();

public SubForm()
{
    InitializeComponent();
}

private void SubForm_load(object sender, EventArgs e)
{
    if (mainForm.unitConnected) // Do something
}
c# winforms subform
2个回答
0
投票

您可以在构建子表单时传递对主表单的引用,然后使用

new SubForm(this)
进行调用。

子表格:

private MainForm mainForm = new();

public SubForm()
{
    InitializeComponent();
}

主要形式:

public bool unitConnected = false;

private void buttonOpenSubForm_Click(object sender, EventArgs e)
{
    unitConnected = true;

    SubForm subForm= new SubForm(this);

    if (subForm.ShowDialog(this) == DialogResult.OK)
    {
        // Do something
    }
}

-1
投票

据我了解,您想要创建类似 MessageBox 的内容,您将在其中打开包含特定信息的表单,最后您将选择“确定”或“取消”。如果这是您的意图,您应该按照以下步骤操作。

第1步:

 private void button1_Click(object sender, EventArgs e)
 {
     SubForm sub = new SubForm();
     if (sub.ShowDialog(this) == DialogResult.OK)
     {
        //Your Code
     }
  }

第2步:

在“SubForm”模型中,添加一个按钮并将该按钮的 DialogResult 属性设置为我选择的任何值“Ok”。

请注意,如果您想从“SubForm”模型接收任何值,请设置“static”类型的中介器 class 并输入所需的属性和函数,以便以出色的方式从任何地方访问这些值。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.