我如何将值传递给正在运行的表单

时间:2013-11-10 04:23:29

标签: winforms c#-3.0

我有两种形式:Form1和Form2 Form1开始使用Application.Run()

运行 如果用户开始编辑DataGridView,则

和Form1具有datagridview 我在CellBeginEdit事件

中运行这样的Form2
Form2 addStock = new Form2(productNo, stockString, this);
addStock.Activate();
addStock.Show();

Form2完成任务后,当我单击表单2上的一个按钮时,我想获取值返回到Form1并在Form1上的DataGridView中显示并关闭Form2

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

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

我该怎么做才能做到这一点?

2 个答案:

答案 0 :(得分:1)

我建议制作一个自定义类并制作一些静态成员,当你导航到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中调用这些自定义类成员,并根据您的需要进行验证..

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

希望它有所帮助..

答案 1 :(得分:0)

public properties添加到Form2。完成计算后,无论您在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;