我正在用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; }
}
答案 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;
}