2014-02-11 52 views
0

我只是想知道如何在窗体之间传输字符串和整数变量。举例说明我的意思是让用户输入他们的姓名和年龄,这些姓名和年龄将以另一种形式传输和显示,并通过按钮激活。如何在C#中的表单之间传递变量?

+2

有数百个问题问这个。我投票结束这个,因为它是重复的。 –

回答

1

使用全局静态类来保存值。只需在另一个位置使用该类的对象。并在任务完成时创建该类的新对象。

+0

这通常被认为是不好的做法。软件应始终围绕最小权限的设计进行设计。因此,只有一个表单需要时才能全局访问变量,这不是一个好主意。查看使用委托方法的其他链接答案之一或任何其他方式直接在表单之间进行通信。 – SeeMoreGain

1
+0

我不知道谁投了这个票,但我认为这是一个很好的答案,表明这是一个重复的问题。其中之一就是为海报提供针对其特定代码的剪切和粘贴答案。 – SeeMoreGain

2

可以通过使用简单Events and delegate概念实现这一点。从您的Form 1发布活动,您可以在您的Form 2页面订阅。 Delegate将作为EventEvent handler之间的沟通渠道。

0

您可以使用公共属性将主窗体中的值传递给子窗体。

喜欢的东西

public partial class ParentForm : Form 
{ 
    public ParentForm() 
    { 
     InitializeComponent(); 
    } 
    private void button2_Click(object sender, EventArgs e) 
    { 
     ChildForm c = new ChildForm(); 
     c.StringValue = "TADA"; 
     c.IntValue = 42; 
     c.Show(); 
    } 
} 


public partial class ChildForm : Form 
{ 
    public string StringValue{get; set;} 
    public int IntValue { get; set; } 

    public ChildForm() 
    { 
     InitializeComponent(); 
    } 
}