用于存储数据的类

时间:2015-04-29 13:55:22

标签: c# forms class variables

我正在用C#编写一个程序,我在两个表单之间传递变量时遇到了一些问题。例如在form1中,我有一个文本框,我放了一些数据,我需要在form2的textbox中显示它。我尝试使用属性“get,set”创建其他类,但它不起作用,不知道为什么。

form1的代码

private void button1_Click(object sender, EventArgs e)
        {

            DaneDelegacja Dane = new DaneDelegacja();
            Dane.MiejsceDocelowe = textBox1.Text;

            // Create a new instance of the Form2 class
            Form2 settingsForm = new Form2();

            // Show the settings form
            settingsForm.Show();
            this.Hide();
        }

和form2的代码:

 public Form2()
        {
            InitializeComponent();
            DaneDelegacja Dane = new DaneDelegacja();
            textBox1.Text = Dane.MiejsceDocelowe;

        }

用于存储数据的类:

class DaneDelegacja
    {
        public  string MiejsceDocelowe { get; set; }
    }

3 个答案:

答案 0 :(得分:1)

由于您每次都在Form2的构造函数中创建新实例,因此无效。

private void button1_Click(object sender, EventArgs e)
{

    DaneDelegacja Dane = new DaneDelegacja();
    Dane.MiejsceDocelowe = textBox1.Text;

    // Create a new instance of the Form2 class
    Form2 settingsForm = new Form2(Dane);

    // Show the settings form
    settingsForm.Show();
    this.Hide();
}

和form2中的代码:

public Form2(DaneDelegacja Dane)
{
    InitializeComponent();
   // DaneDelegacja Dane = new DaneDelegacja(); <-- remove this line
    textBox1.Text = Dane.MiejsceDocelowe;
}

答案 1 :(得分:0)

您需要将在Form1中创建的DaneDelegacja对象传递给Form1。目前,您在Form2中创建了一个无法设置其属性的新对象。

public Form2(DaneDelegacja Dane)
{
    InitializeComponent();
    textBox1.Text = Dane.MiejsceDocelowe;
}

答案 2 :(得分:0)

通过Form2构造函数传递数据:

form1的代码

private void button1_Click(object sender, EventArgs e)
        {             
            // Create a new instance of the Form2 class
            Form2 settingsForm = new Form2(textBox1.Text);

            // Show the settings form
            settingsForm.Show();
            this.Hide();
        }

和form2的代码:

 public Form2(string data)
        {
            InitializeComponent();

            textBox1.Text = data;

        }