日期:2014-05-20  浏览次数:20823 次

WinForm 的Datagridview 的问题
在第二个窗体怎样访问第一个窗体Datagridview所选择的列中的cells。然后在第一个窗体对选择的数据行进行更新数据操作。

------解决方案--------------------
弄两个窗体,第一个窗体一个DataGridView和一个Button,第二个窗体两个TextBox。点击第一个窗体的Button获取值显示在第二个窗体的TextBox中,当你保存数据后刷新第一个的窗体的DataGridView,也就是重新绑定一下数据源。

第一个窗体代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace dataGridDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.dataGridView1.DataSource = getTable();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string product = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value.ToString();
            string version = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[2].Value.ToString();

            Form2 frm = new Form2();
            ((TextBox)frm.Controls["textBox1"]).Text = product;
            ((TextBox)frm.Controls["textBox2"]).Text = version; 
             frm.Show();
        }

        public DataTable getTable()
        {
            DataTable tblDatas = new DataTable("Datas");
            DataColumn dc = null;

            //赋值给dc,是便于对每一个datacolumn的操作
            dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
            dc.AutoIncrement = true;//自动增加
            dc.AutoIncrementSeed = 1;//起始为1
            dc.AutoIncrementStep = 1;//步长为1
            dc.AllowDBNull = false;//

            dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
            dc = tblDatas.Columns.Add("Description", Type.GetType("System.String"));