【问题标题】:Winforms C# pass variable between forms [duplicate]Winforms C#在表单之间传递变量[重复]
【发布时间】:2016-12-03 00:42:41
【问题描述】:

如何将 name 值从 Form1 传递到 Form2?

表格1

public partial class Form1 : Form
{
    public string name = "xxx";
}

Form2

public partial class Form2 : Form
{
    private void Form2_Load(object sender, EventArgs e)
    {
        lblname.Text = name;
    }
}

解决方案:

表格1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string name = "xxx";
        Form2 frm2 = new Form2(name);
        frm2.Show();
    }
}

Form2

public partial class Form2 : Form
{
    public Form2(string name)
    {
        InitializeComponent();
        label1.Text = name;
    }
}

【问题讨论】:

  • 问了一千次,谷歌你的标题,在你问这个之前你应该做的。
  • 我应该提到我搜索了 100 次吗?
  • 那么你需要提高你的谷歌搜索技能。我觉得我每隔一天就会看到这个问题被问到(并且作为骗子被关闭)。
  • 令人沮丧的是看到人们不愿意在研究上投入最少的精力

标签: c# .net winforms


【解决方案1】:

一个简单但不推荐的解决方案是将字段设为静态:

public partial class Form1 : Form
{
    public static string name = "xxx";
}

那么你可以简单地从另一种形式读取它:

public partial class Form2 : Form
{
    lblName.Text = Form1.name;
}

【讨论】:

  • 使用静态变量是灾难的根源。我曾开发过以这种方式编写的表单应用程序,除非您想将自己的职业生涯花在寻找不可能找到的错误上,否则静态变量应该保留给全局的、大部分不可变的数据。
  • @DVK 我完全同意你的看法。事实上,我确实澄清过,根本不推荐这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 2023-03-09
  • 2011-04-21
  • 1970-01-01
相关资源
最近更新 更多