Winforms C#在表单之间传递变量[重复]

Posted

技术标签:

【中文标题】Winforms C#在表单之间传递变量[重复]【英文标题】:Winforms C# pass variable between forms [duplicate] 【发布时间】: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 次吗? 那么你需要提高你的谷歌搜索技能。我觉得我每隔一天就会看到这个问题被问到(并且作为骗子被关闭)。 @Cris google.com/search?q=Winforms+C%23+pass+variable+between+forms 令人沮丧的是看到人们不愿意在研究上投入最少的精力 【参考方案1】:

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

public partial class Form1 : Form

    public static string name = "xxx";

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

public partial class Form2 : Form

    lblName.Text = Form1.name;

【讨论】:

使用静态变量是灾难的根源。我曾开发过以这种方式编写的表单应用程序,除非您想将自己的职业生涯花在寻找不可能找到的错误上,否则静态变量应该保留给全局的、大部分不可变的数据。 @DVK 我完全同意你的看法。事实上,我确实澄清过,根本不推荐这样做。

以上是关于Winforms C#在表单之间传递变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C# 为啥我的变量不能在表单之间正确传递?

在表单之间传递selectionStart属性(monthCalendar)(winforms c#)

在 C# Web 表单中单击 [确定] 后,如何在 .aspx 页面之间传递变量

使用 C# 在表单之间传递数据的最佳方式

在winforms中绘制水平分隔线[重复]

根据表单大小设置 splitContainer 属性大小 C# WinForms