Winforms 如何将值传递给运行窗体

Winforms 如何将值传递给运行窗体,winforms,c#-3.0,Winforms,C# 3.0,我有两张表格:表格一和表格二 Form1开始使用Application.Run()运行 如果用户开始编辑datagridview,则Form1具有datagridview 我在CellBeginEdit事件中这样运行Form2 Form2 addStock = new Form2(productNo, stockString, this); addStock.Activate(); addStock.Show(); 在Form2完成任务后,当我单击Form2上的按钮时,我希望得到返回Form1

我有两张表格:表格一和表格二 Form1开始使用Application.Run()运行

如果用户开始编辑datagridview,则Form1具有datagridview 我在CellBeginEdit事件中这样运行Form2

Form2 addStock = new Form2(productNo, stockString, this);
addStock.Activate();
addStock.Show();
在Form2完成任务后,当我单击Form2上的按钮时,我希望得到返回Form1的值,并显示在Form1上的DataGridView中,然后关闭Form2

我试图传递Form1的对象 Form2 addStock=新的Form2(productNo,stockString,this


但在Form2上,我无法使用该对象访问Form1的DataGridview


如何才能做到这一点?

我建议创建一个自定义类并创建一些静态成员,当您导航到form2 jux时,请检查它们

class CustomClass
{

      public static int ProductNo;
      public static string StockString;
}
//这些是从form1调用form2

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


   Form2 addStock = new Form2();
   addStock.Activate();
   addStock.Show();
现在在表单2中调用这些自定义类成员,并根据您的需要进行验证


希望它能帮助x..

公共属性添加到表单2中。在完成计算后,无论您在Form2中做什么,都将值设置为这些属性。现在,这些值可以在From1中使用您创建的用于显示Form2的相同From2实例进行访问

现在在From1中访问Form2的属性值

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

//Reading the property value of Form2
string stockValue = addStock.StockStringProperty;

“但是在Form2上,我无法使用该对象访问Form1的DataGridview”将DataGridview的Modifiers()属性更改为Public。如果您想保持OOP的外观,请通过公共属性公开DataGridView。
Form2 addStock = new Form2(productNo, stockString, this);
addStock.Activate();
addStock.Show();

//Reading the property value of Form2
string stockValue = addStock.StockStringProperty;