日期:2014-05-17  浏览次数:20926 次

B界面中的值 怎么在A界面中的datagridview中显示出来
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

------解决方案--------------------
属性,传值。
窗体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
}

------解决方案--------------------
引用:
这是你说的话,《我选中两个值点击确定》 恕我愚钝 不理解你想干嘛?

楼主的意思是说,在窗体B中的datagridview控件中,选择了两个值什么值,存在list<String>这个里面吧。
------解决方案--------------------
MainWindow mw = new MainWindow();            
mw.AddListToDeviceId(list);
mw这个界面是你新初始化的一个界面,与之前的不是同一个,自然没反应。
------解决方案--------------------

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();

具体你调试一把。
------解决方案--------------------
B界面定义两个公共变量
public string A;
public string B;

然后A中需要获得值时
FrmB _frmB = new FrmB();
_frmB.ShowDialog();
string _a = _frmB.A;
string _b = _frmB.B;
------解决方案--------------------
而且不能再实例化这个啊MainWindow,你需要在MainWindow界面代码中实例化另一个页面(可以关闭的页面)。