2013-11-10 5 views
0

У меня есть 2 формы: Form1 и Form2 Form1 начать работать с Application.Run()как я могу передать значение запущенной форме

и Form1 есть DataGridView, если пользователь Start Отредактируйте DataGridView я запустить Form2 как это в CellBeginEdit случае

Form2 addStock = new Form2(productNo, stockString, this); 
addStock.Activate(); 
addStock.Show(); 

После Form2 закончить задачу, когда я нажимаю кнопку на форме 2 я хочу, чтобы получить значение возврата к Form1 и шоу в DataGridView на Form1 и закрыть Form2

я пытался в передать объект Form1 Form2 addStock = new Form2 (productNo, stockString, это);

но на Form2 я не могу получить доступ к DataGridView формы Form1 с этим объектом

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

+1

"но на Form2 я не могу получить доступ к DataGridview Form1 с этим объектом" Измените свойство Modifiers() DataGridView на общедоступное. Если вы хотите сохранить некоторое подобие OOP-ness, выставляйте DataGridView через публичное свойство. –

ответ

1

что я предлагаю сделать пользовательский класс и сделать некоторые статические элементы, и когда вы переходите к form2 jux, проверьте их.

class CustomClass 
{ 

     public static int ProductNo; 
     public static string StockString; 
} 

// это вызов form2 из form1

CustomClasss.ProductNo=12; //some value 
    CustomClass.StockString="Some Value"; 


    Form2 addStock = new Form2(); 
    addStock.Activate(); 
    addStock.Show(); 

теперь называем эти элементы пользовательского класса в форме 2 и проверка в соответствии с ур необходимости ..

как

if(CustomClass.ProductNo==2 && CustomClass.StockString=="Some String") 
{ 
    //do something 
} 

Надеюсь, что helpx ..

0

Добавить public properties в форму 2. По завершении вычисления все, что вы делаете в Form2, задайте значения этим свойствам. Теперь эти значения доступны в пределах From1 с тем же экземпляром From2, который вы создали, чтобы показать Form2.

Теперь в пределах From1 доступ к этим значениям свойств Form2.

Form2 addStock = new Form2(productNo, stockString, this); 
addStock.Activate(); 
addStock.Show(); 

//Reading the property value of Form2 
string stockValue = addStock.StockStringProperty; 
Смежные вопросы