添加类似全局变量的东西从另一个表单中读取它?

时间:2013-07-16 14:25:06

标签: c# variables global

我想创建一个程序(或者我已创建它),希望您在主窗体出现之前输入一个名称。您输入的名称应保存为变量。这并不困难,但如果我想从另一种形式中检索它,这是不可能的,该怎么办?

我观看了YouTube视频并在Google上搜索过,但我找不到我需要的内容。 我希望你能提供帮助。

此致

3 个答案:

答案 0 :(得分:2)

全局变量是代码味道 - 它们通常不是一个好主意(它们会产生脆弱,不可测试的代码)。

在您的情况下,如果您对第二个表单有引用,则可以将数据传递给它 - 您可以在此表单上添加一个属性并填充它。

// in Form2
public string Name { get; set; }

// in Form1 (frm2 is a reference to Form2)
frm2.Name = theName;

如果数据是第二种形式的组成部分,另一种方法是创建一个以名称作为参数的构造函数重载。

答案 1 :(得分:0)

在表单上创建一个公共属性,然后您就可以从任何地方引用它,例如

public string MyProperty{get; set;};

答案 2 :(得分:0)

如果您已经编写了表单类,则可以添加一个可用于设置名称的公共属性。

public partial class myForm : Form
{
    public String EnteredName { get; set; }

    public myForm()
    {
        InitializeComponent();
    }
}

然后你可以把它称为:

myForm f = new myForm();
f.EnteredName = "My Name";
f.ShowDialog();

这意味着您可以在表单类中执行任何操作。

N.B。不要调用属性Name,因为它会影响窗体的Name属性。