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;