我在form1里面有一个datagridview,点击按钮弹出from2,在from选择了一些数据,返回一个datatable表实例后,关闭form2,这时我想马上叫from1里面的datagridview绑定这个数据表,我是在from2里面写的,但是关闭了以后,from1里面的datagridview为什么没有刷新,还是空的,请问怎样解决? Form2 a = new Form2();
a.selTable = dataCon1;dataCon1这个表是在form2里面加工好了的。selTable是form1的datagridview绑定的。
a.dataGridView1.DataSource = selTable;
a.dataGridView1.Refresh();
this.Close();
但是不刷新,我也有试过 a.dataGridView1.DataSource = dataCon1,也是不行。求解。
多谢大家,分不多!
a.selTable = dataCon1;dataCon1这个表是在form2里面加工好了的。selTable是form1的datagridview绑定的。
a.dataGridView1.DataSource = selTable;
a.dataGridView1.Refresh();
this.Close();
但是不刷新,我也有试过 a.dataGridView1.DataSource = dataCon1,也是不行。求解。
多谢大家,分不多!
BindingSource bs = new BindingSource();
bs.DataSource = dataCon1;
this.dataGridView1.DataSource = bs;
笨点的方法是用静态类
然后又a.a.dataGridView1.DataSource = selTable;
莫非datagridview在form2里面吗?
datagridview应该在form1里面呀。
是的,五楼,对不起,我写错了,是在form1里面的,我写错了!!!
//子窗体
public event EventHandler MySelectedChanged; //选择数据源事件 public DateTable MyDataSource //子窗体选择的数据源
{
get ;
set ;
} private void button1_Click(object sender, EventArgs e)
{
MyDataSource = _dataTable; //设定数据源
if (MySelectedChanged!= null)
{
MySelectedChanged(this, e); //触发绑定事件
}
} //父窗体
private form2 m_dlg; private void button1_Click(object sender, EventArgs e)
{
if (m_dlg == null)
{
m_dlg = new form2();
m_dlg.MySelectedChanged+= new EventHandler(m_dlg_MySelectedChanged);
m_dlg.FormClosed += new FormClosedEventHandler(m_dlg_closed);
m_dlg.Show(this);
}
else
{
m_dlg.Activate();
}
} private void m_dlg_MySelectedChanged(object sender1, EventArgs e1)
{
dgv.DataSource = m_dlg.MyDataSource;
} private void m_dlg_closed(object sender1, EventArgs e1)
{
m_dlg = null;
}
a.dataGridView1.Columns.Clear();
a.dataGridView1.DataSource = null;
a.dataGridView1.DataSource = table;