Form1和From2中都有一个DataGridView,DataGridView里有DataGridViewButtonColumn列,这个DataGridViewButtonColumn列用来显示子窗体Form3,在显示子窗体的同时从父窗体获取一些值(值分别来自Form1和From2里的DataGridView的当前行),两个DataGridView里的列是相同的,值不同而已。在子窗体的Load事件里怎样分别调用两个父窗体的值。我要实现的是,在Form1窗体打开Form3时,Form3的控件显示Form1里DataGridView对应的值;在Form2打开Form3时,Form3的控件显示Form2里DataGridView对应的值。请高手指点,谢谢!

解决方案 »

  1.   

    你直接把DataGridView传到Form3好了
      

  2.   


    我知道!但我要做到的是,如果从Form1打开Form3,就要传Form1对应的值;如果从Form2打开Form3,就要传Form2对应的值。我就不知道怎么传?
      

  3.   

    这个太基础了,楼主需要继续学习啊
    你这种需求,最简单的的方法使用是 属性,在FORM3中设置一个属性,并且在FORM3的LOAD中使用这个属性,在FORM1或FORM2中的窗口实例化后把DataGridView中的值赋给这个这个属性就行了。
      

  4.   

    四楼所说的是Modifiers属性吗?我知道可以把这个属性设为public,但不想用这种办法
      

  5.   

     你先设一个静态变量 public static string mystring;然后在打开FORM2事件中
     string mystring = this.DataGridView1.CurrentRow.Cells[4].Value.Tostring();
    form2 myf=new form2();
    myf.show();
    这样你就可以在FORM2中调用这个变量了。
    this.textbox1.text=mystring
      

  6.   

    对啊,你传值就能实现你要的效果了哦贴个简单的代码给你看看://这句是获取当前行的值
    string cellValue = AllLinkmanGridView.SelectedCells[0].Value.ToString();
    //这句是通过新实例化的窗体来传递父窗体DataGridview全部值
    EditLinkmanForm elForm = new EditLinkmanForm(AllLinkmanGridView.SelectedCells, this);