Установите значение в свойстве в Class1 из Form1, затем получите значение этого свойства в Class1 для Form2, используя C # Windows Form - PullRequest
1 голос
/ 26 сентября 2011

У меня есть эта проблема, я установил значение для свойства, скажем, Form1, затем получаю это значение в Form2, но оно возвращает ноль.

пример кода.

//Sample.cs
public class Sample
{
    private string exchange;

    public Sample()
    {
    }

    public string Exchange
    {
        get { return exchange; }
        set { exchange = value; }
    }
}

//From Form1 set value
private void setBtn_Click_1(object sender, EventArgs e)
{
    Sample testing = new Sample();

    testing.Exchange = exchange.Text;
}

//From Form2 get value
private void getBtn_Click_1(object sender, EventArgs e)
{
    Sample testing2 = new Sample();
    string exchange2 = testing2.Exchange;
}

Вот в чем проблема, exchange2 имеет значение null, я знаю его, потому что я объявил новый экземпляр, пожалуйста, скажите мне, как получить значение с помощью Form2, которое было установлено в Form1.

Заранее спасибо, ребята!

Ответы [ 3 ]

1 голос
/ 26 сентября 2011

Это нормально, возвращают ноль, потому что вы каждый раз создаете новый объект

Sample testing2 = new Sample();

объявляете публичное свойство в классе Form2

  class Form2
  {
     public Sample MySample {get; set;}
  }
private void setBtn_Click_1(object sender, EventArgs e)
{
Sample testing = new Sample();

Form2 form2 = new Form2();
form2.MySample = testing;
form2.Show();
}
0 голосов
/ 26 сентября 2011

Ниже приведены несколько позиций:

1) Delcare свойство статическое:

public static string Exchange{get;set;}

2) Передать объект, созданный в Form1, в Form2:

0 голосов
/ 26 сентября 2011

Если вы хотите использовать классы и свойства таким образом, сделайте обменное поле статическим, чтобы оно было доступно всем экземплярам вашего класса.Статические поля связаны с классом, а не с экземплярами, и в вашем случае из Form1 и Form2 вы создаете разные экземпляры класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...