Переменный доступ от Form1 до From2 - PullRequest
0 голосов
/ 23 февраля 2012

Я новичок в C #, и мне нужно иметь доступ к объявленной переменной от Form1 до Form2.Пример переменной:

decimal Total = 0.00M; Итого будет увеличиваться, когда пользователь вводит элементы.

Мне нужна форма 2 для доступа к переменной Total из формы 1, как только пользователь завершит ввод элементов и когда пользователь выберетспособ оплаты я могу обнулить Total в форме 2.

Как я могу это сделать?

Ответы [ 4 ]

4 голосов
/ 23 февраля 2012

Если у Form1 есть ссылка на Form2, вы можете просто получить к ней доступ как к переменной.Как это:

public class Form1
{
  public decimal Total {get; set;}
}

public class Form2
{
  public Form2()
  {
    var form1 = new Form1();
    form1.Show();

    ..later, after use has done some work and you need the variable
    var total = form1.Total;
  }
}
1 голос
/ 23 февраля 2012

Вы можете передать Form1 вашей Form2 (на случай, если вам понадобится больше переменных):

public class Form2
{
    public Form1 form1 { get; set; };
}

Я полагаю, вам следует вызвать Form2 из Form1, чтобы вы могли сделать что-то вроде этого:

public class Form1
{
    private void callForm2()
    {
        Form2 form2 = new Form2();
        form2.form1 = this;
        form2.Show();
    }
}

Я не рекомендую использовать статические переменные, поскольку они могут вызвать некоторые проблемы в случае, если в вашем приложении открыто более 1 формы Form1.

1 голос
/ 23 февраля 2012

Создать статическую переменную в другом классе или одном из классов.Статические переменные доступны всем.Вам нужно сделать переменную generic / static.Вот как бы я это сделал.

0 голосов
/ 23 февраля 2012

Лучший способ для таких случаев, как этот, - создать третий класс, представляющий контекст операций, обрабатываемых в этих двух формах. Вы можете сохранить все состояние, в котором вы хотите получить общий доступ, в этом классе и передавать его как параметр от формы к форме. Или примените шаблон Singleton, который позволит получить доступ к состоянию из всех имеющихся у вас форм.

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