从公共类中获取两个表单的变量

时间:2018-03-15 16:10:44

标签: c# .net

我想从现有表单中打开一个新表单 - AdminForm。新表单要求输入密码,密码应转移到MainForm中的变量。

为此,我创建了一个类:

public class Decrypt
{    
    public static string AdminPass { get; set; }
}

我引用了AdminForm中的公共类,并在AdminPass变量中设置了一个值。

public Decrypt AdminPass { get; set; }

private void button1_Click(object sender, EventArgs e)
{
    if (txtAdminPass.Text == "2017")
    {
        Decrypt.AdminPass = "yes";
        this.Close();
    } 
    else 
    {
        MessageBox.Show("Incorrect. Try again.");
    }
}

最后,我试图在我的MainForm中访问变量,如下所示:

private void btnDecrypt_Click(object sender, EventArgs e)
{
    using (AdminForm openForm = new AdminForm() { AdminPass = new Decrypt() })
    {
        if (openForm.ShowDialog() == DialogResult.OK)
        {    
            label23.Text = Decrypt.AdminPass;
        }

    }
}

编辑:变量到Decrypt.AdminPass;

然而。该变量似乎仅在AdminForm中分配。因此,如果我在MessageBox.Show(Decrypt.AdminPass);AdminForm string 'Yes',则MainForm会被打印出来。但在label23.Text中,<?xml version="1.0" encoding="utf-8"?>保持不变。

我遇到错误的任何线索?

我知道这是一个基本问题,但我对C#很新。

1 个答案:

答案 0 :(得分:1)

if (txtAdminPass.Text == "2017")
{
    Decrypt.AdminPass = "yes";
    //this.Close();
    DialogResult = DialogResult.OK;  // !!!
} 
else ...