winform 中我在form2中调用了form1的DataGridViewBind(),既重新给DataGridView1.DataSource赋值,但
为什么没刷新DataGridView的数据显示呢?而且DataSource数据源的值是改变了的啊

解决方案 »

  1.   

    update 或 refresh 一下可不可以
      

  2.   

    你确定是调用同一form1的实例?
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  3.   

    你直接把FORM1中的绑定的方法调用一下嘛
    比如:form1中加个方法:
    public void binddgv(){
       dataTable dt = .....;//数据源dataTable或list什么的 都一样
       this.datagridview1.datasour=dt;
    }在Form2中调用form1.binddgv()这个方法不就行了
      

  4.   

    refresh()刷新,或者数据源改变了它会自动刷新,不行说明你跨窗口操作,没有对原来的窗口操作,新实例化的form不是原来的form
      

  5.   

    那怎么调用form1原来那个实例呢?
      

  6.   

    你这样做是不会刷新的
    你应该在form1总调用DataGridViewBind(),调用的位置在form2.ShowDialog();以后
    这样就可以做的数据的刷新
      

  7.   

    修改下Form2的构造函数,传递Form1进去就可以了。Form1 _form1;
    public Form2(Form1 f)
    {
      InitializeComponent();
      this._form1 = f;
    }如果你的Form2还给别的Form调用,那个参数你传递个null进去即可。
      

  8.   

    方法也很多 本人支持重载构造函数通过多参数来实现
    Form1 form1;
    public Form2(Form1 f)
    {
      InitializeComponent();
      this.form1 = f;
      

  9.   

    找到一个方法,用委托,http://www.cnblogs.com/hhshuai/archive/2009/02/03/1347837.html还是谢谢大家