




Если CustomerID является общедоступным:
frmTwo.CustomerId = frmOne.CustomerId
Чтобы добавить к ответу Джима, вы можете передавать переменные через общедоступные свойства или через конструктор форм. Так
Form2 frm = new Form2(customerId);
или как предоставил Джим. Есть много способов получить значение, я предпочитаю конструктор, если от него зависит вторая форма.
Вы должны объявить общедоступную собственность в той форме, в которой хотите перейти. Затем, после создания экземпляра вашей новой формы, это простое назначение:
C#: MyOtherInstantiatedForm.CustomerID = CurrentCustomerID;
Вам нужно передать CustomerID в несколько форм? Как насчет другой информации о клиентах? Если вы предоставите дополнительную информацию, мы, вероятно, сможем предложить вам лучшее решение.
вы не объявляете переменные общедоступными в парадигме OO, вы используете для этого свойства (принцип инкапсуляции)
Здесь важно отметить, что форма - это не что иное, как класс C#. Если вы подумаете о форме в этих терминах, ответ, вероятно, выскочит сам по себе.
По сути, у вас есть два варианта. Первый - предоставить свойство в форме, для которого вы хотите передать данные. Это достойный метод, если ваша форма не полагается на передаваемые данные для своей работы.
CoolForm myForm = new CoolForm();
myForm.MyProp = "Hello World";
myForm.ShowDialog();Второй вариант - передать данные через конструктор. Я предпочитаю этот подход, когда форма полагается на данные, чтобы функционировать. Я также склонен отмечать конструктор без параметров как закрытый, чтобы гарантировать правильное создание экземпляра формы.
CoolForm myForm = new CoolForm("Hello World");
myForm.ShowDialog();Надеюсь, это поможет...
Другой подход, который я видел в прошлом, - это размещение данных в скрытом элементе управления в форме, а затем доступ другой формы через свойства элемента управления. Не очень элегантно, но я определенно видел это несколько раз.
Джим: Использование скрытой метки в форме в качестве общедоступной переменной хуже, чем неэлегантно, это непростительно дилетантски. Если ваши сотрудники используют этот прием для обмена состоянием между формами, переместите их в управление, где они не смогут больше навредить вашей кодовой базе.
Я должен согласиться с Princess, что я настоятельно рекомендую вам не полагаться на скрытые элементы управления в форме. За исключением того, что я бы не рекомендовал передавать их в управление. Я бы боялся, что они превратятся в микроменеджера и навяжут эти нелепые приемы в команде.
спасибо, эта информация очень полезна, и я ее использую.