100分奉上
A界面中有一个datagridview 和一个按钮,点击按钮后弹出B界面。B界面中也有datagridview我选中两个值点击确定,把选中的两个值添加到A界面中的datagridview中。
不在知道怎么弄啊。求大神帮忙啊。
这是A界面中写的方法 
public void AddListToDeviceId(List<string> list)
        {
            for (int i = 0; i <list.Count; i++)
            {
                MessageBox.Show(list[i]);
                datagridview.datasource=list[i];
            }
        }
B界面中得到值的方法
private void Btn_Choose_Click(object sender, EventArgs e)
        {
            List<string> list = ChooseCells();
            this.Close();
            MainWindow mw = new MainWindow();
            mw.AddListToDeviceId(list);
        }A界面中死活不显示啊。我不知道怎么弄。还被一堆人说。我就是不懂才会出问题的啊。C#DataGridView

解决方案 »

  1.   

    属性,传值。
    窗体2
    public List<String> list{ get; set; }button.click()
    list = ChooseCells();
    this.DialogResult = DialogResult.OK;
    this.Close();
    窗体1
    form2 frm2=new form2();
     if (frm2.ShowDialog() == DialogResult.OK)
    {
    frm2.list;//取得frm2窗体中list的值。
    添加到窗体1datagridview
    }
      

  2.   

    楼主的意思是说,在窗体B中的datagridview控件中,选择了两个值什么值,存在list<String>这个里面吧。
      

  3.   

    MainWindow mw = new MainWindow();            
    mw.AddListToDeviceId(list);
    mw这个界面是你新初始化的一个界面,与之前的不是同一个,自然没反应。
      

  4.   


    public MainWindow mw;
    void B(MainWindow _mw)
    {
    this.mw=_mw;
    }在B中加入这样的代码,直接用mw,不要MainWindow mw = new MainWindow()这样再new,new 一个,是个新对象,不是之前那个。
    A中的代码可以如下:B b=new B(this);
    b.show();具体你调试一把。
      

  5.   

    B界面定义两个公共变量
    public string A;
    public string B;然后A中需要获得值时
    FrmB _frmB = new FrmB();
    _frmB.ShowDialog();
    string _a = _frmB.A;
    string _b = _frmB.B;
      

  6.   

    而且不能再实例化这个啊MainWindow,你需要在MainWindow界面代码中实例化另一个页面(可以关闭的页面)。