在表单c#之间传递对象

时间:2015-04-30 11:51:20

标签: c# forms object

我在函数中使用object时遇到问题。在Form2中我将对象传递给Form3:

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

// Create a new instance of the Form3 class
Form3 nocleg = new Form3(Dane);

Form3

public Form3(DaneDelegacja Dane)
{
     InitializeComponent();                             
}

并且在Form3上的函数button1_click中我无法使用该对象“Dane”,因为

  

“错误1名称'Dane'在当前上下文中不存在”

private void button1_Click(object sender, EventArgs e)
{
        Dane.NoclegRyczalt = textBox1.Text;
        Dane.NoclegRachunek = textBox2.Text;

        // Create a new instance of the Form4 class
        Form4 posilki = new Form4();

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

感谢您的帮助:)

2 个答案:

答案 0 :(得分:2)

您正在传递DaneDelegacija类的实例,但是您不能将对Dane的引用保存到Form3。

在Form3中,您需要创建一个属性:     DaneDelegacija dane;

在Form3(DaneDelegacija Dane)中,您应该将该属性设置为:

dane = Dane; //from your constructor

然后致电:

dane.NoclegRyczalt .. etc

答案 1 :(得分:2)

您必须将其存储在Form3内。创建一个字段/属性,并在构造函数中分配Dane的值:

public class Form3 : Form
{
  ...
  private readonly DaneDelegacja Dane;

   public Form3( DaneDelegacja Dane )
   {
      this.Dane = Dane;

      InitializeComponents();
   }
}