日期:2014-05-18  浏览次数:20921 次

窗体的复用问题
有一个名为Form_Edit的窗体,用来输入各种数据

同时,有一个名为Main_Form的窗体中,用DataGridView显示输出数据,选中某一行,对数据进行编辑,我不希望直接在DataGridView中修改,希望在Form_Edit窗体打开该条记录,同时该条记录相关信息应该导入Form_Edit中,在Form_Edit窗体中编辑修改数据。
请问这种如何实现?

或者说相同的情况大家是怎么处理的?



------解决方案--------------------

所有你想要的都在这里:
http://www.codeproject.com/KB/vb/DataGridViewEditForm.aspx
------解决方案--------------------
这不是窗体的复用
这叫做窗体的传值
看看这个博客吧
http://www.cnblogs.com/virusswb/archive/2008/03/31/1131276.html
------解决方案--------------------
C# code
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 0 && e.RowIndex != -1 && !dataGridView1.Rows[e.RowIndex].IsNewRow)
            {
                int orderID = (int)dataGridView1.Rows[e.RowIndex].Cells["OrderID"].Value;
                //同上可以得到每个单元格的值
                //将单元格的值通过Form_Edit窗体的构造函数传递进行处理,也可以传递过去一个DataGridRow
            }
        }

------解决方案--------------------
这个很简单啊,你找到选中那条记录,然后把你需要传的值,传到你那个Edit界面不就行了吗,然后你在Edit界面修改完,保存这些数据就行(这里保存应该找到你datagridview中选中的那行的ID主键,然后再到数据库中更新),然后再重新绑定一次dataGridView就OK了。
------解决方案--------------------
如2楼那位仁兄所说,这不是窗体的复用,而是窗体的传值,C/S必备。
------解决方案--------------------
选中一行把这一行的某个列值传进给一个静态变量,然后打开Form_Edit的时候就知道要加载哪一列了。textbox的值对应你数据库中的列就可以了