111,129
社区成员
发帖
与我相关
我的任务
分享
private void fmMain_Load(object sender, EventArgs e)
{
Form1 fm = new Form1();
(new Form2(fm.dataGridView1.DataSource)).Show();
}
Fmain fm = new Fmain();
(new Form2(fm.dataGridView1.DataSource)).Show();
public class Setting
{
public static int colIndex { get; set; }
public static string col1Value { get; set; }
public static string col2Value { get; set; }
}

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex != -1)
{
Setting.colIndex = e.RowIndex;
if (dataGridView1.CurrentRow.Cells[0].Value != null)
{
Setting.col1Value = dataGridView1.CurrentRow.Cells[0].Value.ToString();
}
if (dataGridView1.CurrentRow.Cells[1].Value != null)
{
Setting.col2Value = dataGridView1.CurrentRow.Cells[1].Value.ToString();
}
}
}
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex != -1)
{
Setting.colIndex = e.RowIndex;
if (dataGridView1.CurrentRow.Cells[0].Value != null)
{
Setting.col1Value = dataGridView1.CurrentRow.Cells[0].Value.ToString();
}
if (dataGridView1.CurrentRow.Cells[1].Value != null)
{
Setting.col2Value = dataGridView1.CurrentRow.Cells[1].Value.ToString();
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
if (Setting.col1Value != null)
{
dataGridView1.Rows[Setting.colIndex].Cells[0].Value = Setting.col1Value;
}
if (Setting.col2Value != null)
{
dataGridView1.Rows[Setting.colIndex].Cells[1].Value = Setting.col2Value;
}
}
catch
{
Setting.colIndex = this.dataGridView1.Rows.Add();
}
}
((DataTable)dataGridView1.DataSource).Rows.Add(new object[] { "123", "234" });
其实也不是说一定要共用一个Datable来实现。
比如:将Form1中的DataGridView1传给Form2,然后在Form2中对传过来的DataGridView的各类事件进行处理。
如:
public Form2(DataGridView grd)
{
InitializeComponent();
grd.NewRowNeeded += ....;
grd.CellEndEdit += ....;
.......
}
只是按我对你的需求的理解,共用DataTable是最简单的方法。
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Add();
dataGridView1.CurrentRow.Cells[0].Value = "123";
dataGridView1.CurrentRow.Cells[1].Value = "234";
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DataTable dt = new DataTable();
DataColumn[] cols = new DataColumn[2];
for (int i = 0; i < 2;i++ )
{
cols[i] = new DataColumn("Column" + (i + 1).ToString(), typeof(string));
}
dt.Columns.AddRange(cols);
dataGridView1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2(dataGridView1.DataSource);
frm.Show(this);
}
}

public partial class Form2 : Form
{
public Form2(object dataSource)
{
InitializeComponent();
dataGridView1.DataSource = dataSource;
}
}
Form1中:
Form2 frm = new Form2(dataGridView1.DataSource);
frm.Show(this);