Приложение для Windows - PullRequest
       20

Приложение для Windows

0 голосов
/ 26 декабря 2008

Как переменные могут быть переданы между Winforms? Пример идентификатора клиента

Спасибо

Ответы [ 4 ]

5 голосов
/ 26 декабря 2008

Самое важное, что следует здесь отметить, это то, что Form - это не более чем класс C #. Если вы думаете о Форме в этих терминах, ответ, вероятно, сам по себе выскочит.

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

CoolForm myForm = new CoolForm();

myForm.MyProp = "Hello World";
myForm.ShowDialog();

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

CoolForm myForm = new CoolForm("Hello World");

myForm.ShowDialog();

Надеюсь, это поможет ...

2 голосов
/ 26 декабря 2008

Чтобы добавить ответ Джима, вы можете передавать переменные через открытые свойства или через конструктор форм. Так

Form2 frm = new Form2(customerId);

или как при условии, Джим. Есть много способов получить значение, я предпочитаю конструктор, если вторая форма зависит от него.

2 голосов
/ 26 декабря 2008

Вы должны объявить публичную собственность в форме, которую вы хотите передать. Затем, после создания вашей новой формы, это простое назначение:

C #: MyOtherInstantiatedForm.CustomerID = CurrentCustomerID;

Нужно ли передавать CustomerID нескольким формам? Как насчет другой информации о клиенте? Если вы предоставите больше информации, мы, вероятно, сможем предложить вам лучшее решение.

2 голосов
/ 26 декабря 2008

Если идентификатор клиента публичный:

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