C#窗体传值问题

donghongsaber 2019-05-27 05:54:09
请问大家,我想在第一个窗体里输入多项数据,传到第二个窗体的DataGridView表格里面去,要求:
1:每在第一个窗体里完成一次输入,就在第二个窗体里的表格中增加一行。
2:按“输入完成”按钮后,显示第二个窗体里的表格。
我的疑问:
1:由于是动态输入,因此采用静态变量的方法好像不管用(可能是我理解不对)
2:同上,直接改变Form2的构造函数也不管用。
请大家告诉我该如何解决不同窗体之间动态传值的问题,我的想法如下:
在窗体1中使用DataTable,将DataTable与窗体2的表格绑定(不知道如何操作)。
谢谢大家,小白感激不尽!
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
donghongsaber 2019-05-28
  • 打赏
  • 举报
回复
引用 6 楼 stherix 的回复:
[quote=引用 5 楼 donghongsaber 的回复:]



[quote=引用 2 楼 stherix 的回复:]
按“输入完成”按钮后,显示第二个窗体里的表格

也就是说 ,没输入完成前,第二个窗体表格不显示?那么你的第1.条也没必要啊,一次性显示所有数据就行了

弄一个List,里面存你的多项数据的类

数据录入完成后,设置DataGridView的DataSource为这个list就行了

请问我应该怎么把List传递给窗口2呢?[/quote]

可以写个数据类,用event方式通知

当然新手最简单的还是Form2里写public static Form2 Instance;并在构造方法里 Instance = this;
然后其他任何地方可以Form2.Instance.xxxx来调用Form2里面的公共方法了
这样再写个public void SetDataSource(object source)就可以把list传进去[/quote]解决了,谢谢您!
stherix 2019-05-28
  • 打赏
  • 举报
回复
引用 5 楼 donghongsaber 的回复:
[quote=引用 2 楼 stherix 的回复:] 按“输入完成”按钮后,显示第二个窗体里的表格 也就是说 ,没输入完成前,第二个窗体表格不显示?那么你的第1.条也没必要啊,一次性显示所有数据就行了 弄一个List,里面存你的多项数据的类 数据录入完成后,设置DataGridView的DataSource为这个list就行了
请问我应该怎么把List传递给窗口2呢?[/quote] 可以写个数据类,用event方式通知 当然新手最简单的还是Form2里写public static Form2 Instance;并在构造方法里 Instance = this; 然后其他任何地方可以Form2.Instance.xxxx来调用Form2里面的公共方法了 这样再写个public void SetDataSource(object source)就可以把list传进去
donghongsaber 2019-05-28
  • 打赏
  • 举报
回复



引用 2 楼 stherix 的回复:
按“输入完成”按钮后,显示第二个窗体里的表格

也就是说 ,没输入完成前,第二个窗体表格不显示?那么你的第1.条也没必要啊,一次性显示所有数据就行了

弄一个List,里面存你的多项数据的类

数据录入完成后,设置DataGridView的DataSource为这个list就行了

请问我应该怎么把List传递给窗口2呢?
eaqpi 2019-05-27
  • 打赏
  • 举报
回复
把datatable当参数,直接传个输入框的窗体,

这样,你在DataTable里面更新了什么,DataGridView会及时反映的。

ManBOyyy 2019-05-27
  • 打赏
  • 举报
回复
DataTable dt1 = new DataTable();
private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
dt1.Rows.Add();

}
private void button1_Click(object sender, EventArgs e)
{
dataGridView2.DataSource = dt1;
}
stherix 2019-05-27
  • 打赏
  • 举报
回复
按“输入完成”按钮后,显示第二个窗体里的表格 也就是说 ,没输入完成前,第二个窗体表格不显示?那么你的第1.条也没必要啊,一次性显示所有数据就行了 弄一个List,里面存你的多项数据的类 数据录入完成后,设置DataGridView的DataSource为这个list就行了
W_少年 2019-05-27
  • 打赏
  • 举报
回复
使用委托和事件可以实现你的需求

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧