从旧表单访问新表单中设置的值

时间:2013-12-04 12:28:12

标签: c# winforms

我有main表格。在这上面有一个按钮。当我单击此按钮时,将显示一个新表单,如下所示:

private void buLogOptions_Click(object sender, EventArgs e)
{
    logOptionsForm logForm = new logOptionsForm();
    logForm.ShowDialog();
}

在这个logForm中,我有一个'nud'和一个'Done_button'。设置了nud值后,按“完成按钮”。这将关闭此logForm,我回到main表单。我想要的是获取我在主窗体中的logForm中设置的nud的值

4 个答案:

答案 0 :(得分:1)

您可以在logOptionsForm

中拥有一个公共的get-only属性
public int Nud { get; private set;}

然后设置Nud属性,并在“Done”按钮的事件处理程序中设置表格的this.DialogResult属性,如此

this.DialogResult = System.Windows.Forms.DialogResult.OK;

这样当表单关闭时你可以这样做

private void buLogOptions_Click(object sender, EventArgs e)
{
    logOptionsForm logForm = new logOptionsForm();
    logForm.ShowDialog();

    if (logForm.DialogResult == System.Windows.Forms.DialogResult.OK)
    {
        logForm.Nud //do whatever you want with Nud
    }
}

Nud属性是get-only,以避免将其设置在logOptionForm实例之外。

答案 1 :(得分:0)

如果'nud'是公开的,您可以访问它:

private void buLogOptions_Click(object sender, EventArgs e)
{
   logOptionsForm logForm = new logOptionsForm();
   logForm.ShowDialog();
   var resultNud = logForm.nud;   
} 

答案 2 :(得分:0)

你可以制作一个公共变量吗?

    //This is on LogForm
    public bool pressed;


    //This is on your main from
    bool wasPressed = LogForm.pressed

它不一定是字符串,但它适用于任何变量。

答案 3 :(得分:0)

您必须编写接受参数的主窗体构造函数。

public MainForm(string Value){

}

当你点击当时的完成按钮时

将值传递给MainForm对象。

您可以在MainForm构造函数中获取该值。