gpt4 book ai didi

c# - 从其他表单调用时,DataGridView.DataSource 返回空 DataTable

转载 作者:行者123 更新时间:2023-11-30 20:43:52 24 4
gpt4 key购买 nike

我有一个名为 dGV 的 DataGridView

首先,我使用一个空的 DataTable 设置它的 DataSource,它有 300 行和 50 列,这样用户就可以在 DataGridView 中输入他们的数据。

当我尝试在输入数据后从其他表单调用 dGV 时,它总是返回空的 DataTable。这是我的代码:

主窗体:

public MainForm()
{
InitializeComponent();
dGV.DataSource = GetTable();
}

public DataTable GetTable()
{
DataTable table = new DataTable();
for(int i = 1; i < 51; i++)
{
table.Columns.Add("V"+i);
}
for (int i = 1; i < 301; i++)
{
table.Rows.Add();
}
return table;
}

public DataTable GetData()
{
DataTable dt = dGV.DataSource as DataTable;
return dt;
}

表格 2:

private void NDokButton_Click(object sender, EventArgs e)
{
MainForm mf = new MainForm();
DataTable dt = mf.GetData();
var n = dt.Rows[0].ItemArray[0];
String a = n.ToString();
MessageBox.Show(a);
}

它显示一个空的 MessageBox。

最佳答案

当您单击该按钮时,您正在创建 MainForm 的新实例。这将用一堆空数据填充 DataGridView。然后抓取一个空单元格并将其显示在文本框中。

将对现有 MainForm 的引用传递给第二个表单。

private void NDokButton_Click(object sender, EventArgs e)
{
//You're creating a new main form here. You need an instance of the existing form.
MainForm mf = new MainForm();
DataTable dt = mf.GetData();
var n = dt.Rows[0].ItemArray[0];
String a = n.ToString();
MessageBox.Show(a);
}

关于c# - 从其他表单调用时,DataGridView.DataSource 返回空 DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30041331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com