Windows Forms中的数据传递
近日在做windows Forms程序中,发现以前用来传递数据的方法一直不是很适当,经过研究,发现在被调用的Forms里边加入私有成员,然后构造一个带参数的构造函数,可以很方便的将主窗体中的数据传送过来,尤其对于数据库方面的编程,通过定义数据访问层对象或者datarow对象,能更方便的对数据进行RUID操作,效果不错。
Form1的代码:
Form2的代码
Form1的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace DatasetTest
{
public partial class Form1 : Form
{
//public tdsCustomersTableAdapters.CustomersTableAdapter dsc;
//tdsCustomers.CustomersDataTable tdc;
private TestDataAccess td = new TestDataAccess();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//dsc =new DatasetTest.tdsCustomersTableAdapters.CustomersTableAdapter();
//tdc = dsc.GetData();
//dataGridView1.DataSource = tdc;
//using (TestDataAccess tda = new TestDataAccess())
//{
// dataGridView1.DataSource = tda.RetiereCustmoers();
//}
dataGridView1.DataSource = td.RetiereCustmoers();
}
private void button1_Click(object sender, EventArgs e)
{
//DataRow dr = tdc.Rows[dataGridView1.SelectedRows[0].Index];
//Form2 fm = new Form2();
//fm.dr2 = dr;
//if (DialogResult.OK == fm.ShowDialog())
//{
// dr = fm.dr2;
// dsc.Update(dr);
// dataGridView1.DataSource = dsc.GetData();
//}
//MessageBox.Show(
// dataGridView1.Rows[2].Cells[0].ToString());
int rowindex = dataGridView1.CurrentRow.Index;
int taskIDColumnIndex = dataGridView1.Columns["CustomerId"].Index;
//string xinxi = rowindex.ToString();
//xinxi = xinxi + " 其中" + dataGridView1[taskIDColumnIndex, rowindex].Value.ToString();
//MessageBox.Show(xinxi);
string customersid = dataGridView1[taskIDColumnIndex, rowindex].Value.ToString();
dsNorthwind.CustomersRow dcr = td.RetiereCustomersRow(customersid);
//MessageBox.Show(dcr.CustomerID+dcr.CompanyName);
Form2 fm2 = new Form2(td,dcr);
if (DialogResult.OK == fm2.ShowDialog())
{
td.UpdateCustomers(dcr);
}
dataGridView1.DataSource = td.RetiereCustmoers();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
//DataRow dr = tdc.Rows[dataGridView1.SelectedRows[0].Index];
//Form2 fm = new Form2();
//fm.dr2 = dr;
//if (DialogResult.OK == fm.ShowDialog())
//{
// dr = fm.dr2;
// dsc.Update(dr);
// dataGridView1.DataSource = dsc.GetData();
//}
}
private void button2_Click(object sender, EventArgs e)
{
//dsc.DeleteByCustomerId(tdc.Rows[dataGridView1.SelectedRows[0].Index][0].ToString());
//dataGridView1.DataSource = dsc.GetData();
//DataRow drinsert =tdc.NewRow();
//drinsert[0] = "test";
//drinsert[1] = "test1";
//dsc.Update(drinsert);
//tdsCustomers.CustomersRow tcr = tdc.NewCustomersRow();
//tcr.CustomerID = "test";
//tcr.CompanyName = "testonce";
//tdc.Rows.Add(tcr);
//dsc.Update(tcr);
//dataGridView1.DataSource = dsc.GetData();
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace DatasetTest
{
public partial class Form1 : Form
{
//public tdsCustomersTableAdapters.CustomersTableAdapter dsc;
//tdsCustomers.CustomersDataTable tdc;
private TestDataAccess td = new TestDataAccess();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//dsc =new DatasetTest.tdsCustomersTableAdapters.CustomersTableAdapter();
//tdc = dsc.GetData();
//dataGridView1.DataSource = tdc;
//using (TestDataAccess tda = new TestDataAccess())
//{
// dataGridView1.DataSource = tda.RetiereCustmoers();
//}
dataGridView1.DataSource = td.RetiereCustmoers();
}
private void button1_Click(object sender, EventArgs e)
{
//DataRow dr = tdc.Rows[dataGridView1.SelectedRows[0].Index];
//Form2 fm = new Form2();
//fm.dr2 = dr;
//if (DialogResult.OK == fm.ShowDialog())
//{
// dr = fm.dr2;
// dsc.Update(dr);
// dataGridView1.DataSource = dsc.GetData();
//}
//MessageBox.Show(
// dataGridView1.Rows[2].Cells[0].ToString());
int rowindex = dataGridView1.CurrentRow.Index;
int taskIDColumnIndex = dataGridView1.Columns["CustomerId"].Index;
//string xinxi = rowindex.ToString();
//xinxi = xinxi + " 其中" + dataGridView1[taskIDColumnIndex, rowindex].Value.ToString();
//MessageBox.Show(xinxi);
string customersid = dataGridView1[taskIDColumnIndex, rowindex].Value.ToString();
dsNorthwind.CustomersRow dcr = td.RetiereCustomersRow(customersid);
//MessageBox.Show(dcr.CustomerID+dcr.CompanyName);
Form2 fm2 = new Form2(td,dcr);
if (DialogResult.OK == fm2.ShowDialog())
{
td.UpdateCustomers(dcr);
}
dataGridView1.DataSource = td.RetiereCustmoers();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
//DataRow dr = tdc.Rows[dataGridView1.SelectedRows[0].Index];
//Form2 fm = new Form2();
//fm.dr2 = dr;
//if (DialogResult.OK == fm.ShowDialog())
//{
// dr = fm.dr2;
// dsc.Update(dr);
// dataGridView1.DataSource = dsc.GetData();
//}
}
private void button2_Click(object sender, EventArgs e)
{
//dsc.DeleteByCustomerId(tdc.Rows[dataGridView1.SelectedRows[0].Index][0].ToString());
//dataGridView1.DataSource = dsc.GetData();
//DataRow drinsert =tdc.NewRow();
//drinsert[0] = "test";
//drinsert[1] = "test1";
//dsc.Update(drinsert);
//tdsCustomers.CustomersRow tcr = tdc.NewCustomersRow();
//tcr.CustomerID = "test";
//tcr.CompanyName = "testonce";
//tdc.Rows.Add(tcr);
//dsc.Update(tcr);
//dataGridView1.DataSource = dsc.GetData();
}
}
}
Form2的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace DatasetTest
{
public partial class Form2 : Form
{
private TestDataAccess td;
private dsNorthwind.CustomersRow dcr;
//public DataRow dr2;
public Form2()
{
InitializeComponent();
}
public Form2(TestDataAccess td1, dsNorthwind.CustomersRow dcr1)
{
InitializeComponent();
td = td1;
dcr = dcr1;
}
private void Form2_Load(object sender, EventArgs e)
{
//textBox1.Text = dr2[0].ToString();
//textBox2.Text = dr2[1].ToString();
textBox1.Text = dcr.CustomerID;
textBox2.Text = dcr.CompanyName;
}
private void button1_Click(object sender, EventArgs e)
{
//dr2[1] = textBox2.Text;
dcr.CompanyName = textBox2.Text;
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
DialogResult = DialogResult.Cancel;
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace DatasetTest
{
public partial class Form2 : Form
{
private TestDataAccess td;
private dsNorthwind.CustomersRow dcr;
//public DataRow dr2;
public Form2()
{
InitializeComponent();
}
public Form2(TestDataAccess td1, dsNorthwind.CustomersRow dcr1)
{
InitializeComponent();
td = td1;
dcr = dcr1;
}
private void Form2_Load(object sender, EventArgs e)
{
//textBox1.Text = dr2[0].ToString();
//textBox2.Text = dr2[1].ToString();
textBox1.Text = dcr.CustomerID;
textBox2.Text = dcr.CompanyName;
}
private void button1_Click(object sender, EventArgs e)
{
//dr2[1] = textBox2.Text;
dcr.CompanyName = textBox2.Text;
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
DialogResult = DialogResult.Cancel;
}
}
}