form1打开两次怎么分别获取dataGridView1的数据
时间: 2023-12-14 20:35:37 浏览: 69
如果你想在 `form1` 的两个不同的实例中获取 `dataGridView1` 的数据,可以考虑以下两种方法:
1. 使用静态成员变量
在 `form1` 中声明一个静态的 `List` 类型的成员变量,用于存储 `dataGridView1` 中的数据。在 `form1` 的 `Load` 事件中将数据存储到这个静态变量中。当打开第一个 `form1` 实例时,将数据存储到这个静态变量中。当打开第二个 `form1` 实例时,直接从静态变量中获取数据即可。
```c#
public partial class Form1 : Form
{
// 静态成员变量,用于存储 dataGridView1 中的数据
public static List<string> DataList = new List<string>();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 存储 dataGridView1 中的数据到静态变量中
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataList.Add(row.Cells[0].Value.ToString());
}
}
}
```
2. 传递参数
在打开第二个 `form1` 实例时,将 `dataGridView1` 中的数据作为参数传递给 `form1` 的构造函数。在 `form1` 中保存这些数据,并在需要使用时调用即可。
```c#
public partial class Form1 : Form
{
// 用于存储传递过来的数据
private List<string> _dataList;
public Form1()
{
InitializeComponent();
}
public Form1(List<string> dataList)
{
InitializeComponent();
// 保存传递过来的数据
_dataList = dataList;
}
}
```
在打开第二个 `form1` 实例时,将 `dataGridView1` 中的数据作为参数传递给 `form1` 的构造函数。
```c#
List<string> dataList = new List<string>();
foreach (DataGridViewRow row in dataGridView1.Rows)
{
dataList.Add(row.Cells[0].Value.ToString());
}
Form1 form1_2 = new Form1(dataList);
form1_2.Show();
```
阅读全文