C# 使用按钮在窗体之间传递变量

C# 使用按钮在窗体之间传递变量,c#,winforms,C#,Winforms,我想知道如何传递,比如说一个整数,从form1到form2 我试图通过一个按钮打开form2,但事件按钮点击无法识别整数。。。我该怎么办 在表格1中,我有整数x,我希望当我点击按钮1时,表格2会在标签中打开x值 如果有一种不使用按钮传递信息的方法(那么我可以使用按钮打开form2),那也很好。您可以使用第二个表单构造函数 private int input; public Form2(int input) { this.input = input;

我想知道如何传递,比如说一个整数,从form1到form2

我试图通过一个按钮打开form2,但事件按钮点击无法识别整数。。。我该怎么办

在表格1中,我有整数x,我希望当我点击按钮1时,表格2会在标签中打开x值


如果有一种不使用按钮传递信息的方法(那么我可以使用按钮打开form2),那也很好。

您可以使用第二个表单构造函数

    private int input;
    public Form2(int input)
    {
        this.input = input;
        InitializeComponent();
    }
创建对象时,可以传递var(此处为int):

现在可以在form2中使用该私有变量:

lbl.Text=input.toString();

在表格1中:

private void button1_Click(object sender, EventArgs e)
    {
        Form2 tmp = new Form2(911);
        tmp.Show();
    }
表格2:

    public Form2(int input)
    {
        InitializeComponent();
        label1.Text = input.ToString();
    }

发送您的代码以解决此问题。我不知道为什么没有您的代码它无法识别您的VAR

在您的代码中,两种形式都可以访问一个变量。例如,创建一个新名称空间并添加一个
公共静态类FormData
,其中包含
公共静态int值

namespace GlobalVariables
{
  public static class FormData
  {
    public static int Value { get; set; }
  }
}

然后,您可以从两个表单中使用
GlobalVariables.FormData.Value
访问(并修改)上述变量。在这里,我将它设置为一个属性,但您可以使用它做任何您想做的事情。

除了通过Form2构造函数传递值之外,您还可以创建一个设置标签值的属性,例如

表格2

表格1


或者干脆
newform2(){XValue=x}.Show()
@L.B这不是codegolf:p问题是我在form1\u load中更改了x的值。这很奇怪,如果我像你一样改变表单加载中的值,它就会工作。但是,当我在我的“团队”课程中这样做时,它就不起作用了。我会进一步检查…这就是我试图做的,但我希望它能通过点击按钮打开frm2。我不能将我的变量从frm1传递到那个事件(它不会重新定义它们)。这是一个好主意,尽管我使用我自己制作的班级团队,它有一系列的玩家。。也是自制的。它告诉我我不能制作静态数组。。。所以我想我必须通过考试。无论如何谢谢你!
namespace GlobalVariables
{
  public static class FormData
  {
    public static int Value { get; set; }
  }
}
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    public int XValue{
        set{
            label1.Text = value.ToString(); 
        }
    }
}
    public partial class Form1 : Form
{
    private int x = 10;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2();
        form2.XValue = x;
        form2.Show();
    }
}