c#、winfrom点击一个窗体的datagridview中的某行数据,该数据跳转在另一个窗体的textbook中显示

发布时间 2023-07-21 08:45:13作者: wang王dd

效果图

图一:datagridview中数据,单据目前选中的这条

 

 图二:抓取datagridview在的数据显示到另一个页面中的textbook

代码:

datagridview的窗体界面,首先在该界面放置button和datagridview控件

1、点击button筛选按钮中进行绑定数据库,写sql查询语句,然后显示在datagridview中、、、、、点击datagridview在属性中找到SelectionMode,将其设置为FullRowSelect

private void button1_Click(object sender, EventArgs e)
        {
            string htbh = textBox1.Text.Trim();
            string khm = textBox2.Text.Trim();
            string str = "select id, orderid as 单据编号,contractid as 合同编号,date as 日期,company as 公司,project as 项目名称,sub as 分公司 ,con_cate as 合同类别,kh_type as 客户类别,kh_cate as 客户类型,seller as 业务员,cost as 钢材,area as 地区,place as 产地,tax     as 税率,amount as 金额,examine as 审核状态,qj as 期间 from[dbo].[Contract_h] where contractid like '%" + htbh + "%' and company like '%" + khm + "%'";
            da = new SqlDataAdapter(str, SQL);
            dt = new DataTable();
            da.Fill(dt);
            dataGridView1.DataSource = dt;
            dataGridView1.Columns["id"].Visible = false;
        }

 

2、单据datagridview事件,找到 CellDoubleClick 鼠标双击事件,鼠标双击该事件,进行代码编辑

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int index = dataGridView1.CurrentRow.Index; //获取选中行的行号
            kucunyanzheng kucunyanzheng = new kucunyanzheng();

    //这里cell后面数字是上面select中需要显示的字段的索引值,从0开始,你需要什么就条件应该索引就好了,下面的代码就是将datagridview在选中行的值传递给下一个窗体中的构造函数
            kucunyanzheng.a = dataGridView1.Rows[index].Cells[1].Value.ToString();
            kucunyanzheng.b = dataGridView1.Rows[index].Cells[2].Value.ToString();
            kucunyanzheng.c = dataGridView1.Rows[index].Cells[4].Value.ToString();
            kucunyanzheng.d = dataGridView1.Rows[index].Cells[5].Value.ToString();
            kucunyanzheng.ShowDialog();
            this.Dispose();//释放资源
            this.Close();//关闭当前界面
        }

必须要释放资源这里

 

textbook控件的窗体界面 在该界面中拖放textbook控件

1、在第二个有textbook控件的界面中定义构造函数,用于接受上个页面选中行所需要显示的字段

 public string a { get; set; }
        public string b { get; set; }
        public string c { get; set; }
        public string d { get; set; }
        public string e { get; set; }

2、在第二个有textbook控件的界面中双击窗体空白处,在load里面编辑代码,将构造函数的数据传递给textbook控件显示

private void kucunyanzheng_Load(object sender, EventArgs e)
        {
            txtHtbh.Text = a;
            txtDdbh.Text = b;
            txtGsm.Text = c;
            txtXm.Text = d;

        }

OK这样就完成了