gpt4 book ai didi

c# - 在不同形式的 dataGridView 中添加列和行

转载 作者:行者123 更新时间:2023-11-30 22:24:47 25 4
gpt4 key购买 nike

我是c#初学者,我有两种形式mainFormsubFormmainFormDataGridView1subFormrichTextBox1

我想通过 FormClosingEventsubFormDataGridView1 添加行和列

我将 DataGridView1 修饰符设为 public 。它显示在 subForm 的智能感知中,但也许我做错了什么。

我已经在我的 subForm FormClosingEvent 中尝试了以下代码,但我看不到我的 DataGridView1 有任何更新。

   if (richTextBox1.Text != "")
{
mainForm newMainForm = new mainForm();
newMainForm.dataGridView1.ColumnCount = 3;
newMainForm.dataGridView1.Columns[0].Name = "Product ID";
newMainForm.dataGridView1.Columns[1].Name = "Product Name";
newMainForm.dataGridView1.Columns[2].Name = "Product Price";

string[] row = new string[] { "1", "Product 1", "1000" };
newMainForm.dataGridView1.Rows.Add(row);
row = new string[] { "2", "Product 2", "2000" };
newMainForm.dataGridView1.Rows.Add(row);
row = new string[] { "3", "Product 3", "3000" };
newMainForm.dataGridView1.Rows.Add(row);
row = new string[] { "4", "Product 4", "4000" };
newMainForm.dataGridView1.Rows.Add(row);
}

提前致谢

最佳答案

假设您的主窗体打开您的子窗体:

subForm sub = new SubForm();
sub.Show(); // or however you have done it

在您的示例中,您需要子窗体能够更改主窗体上的某些内容,因此,在子窗体上创建一个公共(public)/内部方法,类似于此:

private mainForm _parent;

internal void RegisterParent(mainForm form)
{
// error handling of course, make sure form is not null, or you don't already have a parent
this._parent = form;
}

在主窗体中,在 subForm.Show() 之后,添加如下内容:

sub.RegisterParent(this);

现在您的子窗体可以操作正确的主窗体实例:

if (richTextBox1.Text != "")
{
_parent.dataGridView1.ColumnCount = 3;
_parent.dataGridView1.Columns[0].Name = "Product ID";
_parent.dataGridView1.Columns[1].Name = "Product Name";
_parent.dataGridView1.Columns[2].Name = "Product Price";

string[] row = new string[] { "1", "Product 1", "1000" };
_parent.dataGridView1.Rows.Add(row);
row = new string[] { "2", "Product 2", "2000" };
_parent.dataGridView1.Rows.Add(row);
row = new string[] { "3", "Product 3", "3000" };
_parent.dataGridView1.Rows.Add(row);
row = new string[] { "4", "Product 4", "4000" };
_parent.dataGridView1.Rows.Add(row);
}

希望对您有所帮助!

关于c# - 在不同形式的 dataGridView 中添加列和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12595066/

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