问题描述
有窗体form1和窗体form2,现在如何将form1的datatable做为数据源绑定到form2中的DataGridView中。并且当双击form2中的DataGridView中的某一行时将DataGridView中这一行中的第一列的值付给form1中的strNewcode变量,同时form1关闭。这个怎么实现?求详解!!这是我自己写的代码,但不能实现,求大虾们指点下。form1中的部分代码form2selectbill=newform2();selectbill.dgvBillInfor.DataSource=dtNew;selectbill.Visible=false;stringstrNewcode="";selectbill.Returnvalue=newSelectBill.retunvalue(Showvalue);selectbill.ShowDialog();form2中的部分代码publicdelegatevoidretunvalue(stringstrBillcode);publicretunvalueReturnvalue;privatevoiddgvBillInfor_CellDoubleClick(objectsender,DataGridViewCellEventArgse){if(e.ColumnIndex<0||e.RowIndex<0)return;DataGridViewRowdgvrBill=dgvBillInfor.CurrentRow;if(dgvrBill!=null){stringstrBillCode=dgvrBill.Cells["Cwcwewbcode"].Value.ToString();if(string.IsNullOrEmpty(strBillCode))return;Returnvalue(strBillCode);}}
解决方案
解决方案二:
把要传的值,直接设置成public属性,然后在form2中把直接取。不过form2中要有form1这个字段。如果不懂,先看看面向对象,类的概念,从面相过程的想法过来,这里会非常别扭。
解决方案三:
感觉问题不大,要不你吧那个ReturnValue的代理直接做成事件试试?
解决方案四:
Form1中Form2fm2=newForm2(this);Form2构造函数Form2fm=newForm2();publicForm1(Form_fm)//构造函数{InitializeComponent();fm=_fm;}privatevoidbutton1_Click(objectsender,EventArgse){fm.我的控件}