gpt4 book ai didi

c# - 从另一种形式调用变量 C#

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:12 25 4
gpt4 key购买 nike

我在 Form1 中有一个 DataGridView,我正在使用此代码显示另一个名为 Generator 的表单:

private void button1_Click(object sender, EventArgs e)
{
Form gen = new Generator();
// Form gen = new Generator(Form this); //* I tried this but is not working *//
gen.Show();
}

Generator 表单中,我需要读取或修改 Form1 中的 datagridview 中的某些内容。

public partial class Generator : Form
{
public Form myForm;

public Generator()
{
InitializeComponent();
}

public Generator(Form frm)
{
myForm = frm;
}

private void button1_Click(object sender, EventArgs e)
{
myForm.mydatagridview.! // this is not working
}
}

如何解决这个问题,以便我可以从 Generator 表单中操作 DataGridView

最佳答案

表格 1:

private void button1_Click(object sender, EventArgs e)
{
Form gen = new Generator(this.mydatagridview);
gen.Show();
}

生成器表单:

DataGridView _dataGridView;
public Generator(DataGridView dataGridView)
{
InitializeComponent();
this._dataGridView = dataGridView;
}

private void button1_Click(object sender, EventArgs e)
{
this._dataGridView...! // this will work
}

您必须做和知道的事情(只是提示,您不是被迫做这些,但我相信如果您这样做,您会成为更好的程序员!;)

始终在所有表单构造函数中调用 InitializeComponent()。在您的示例中,您没有在其中一个构造函数中调用它。

C# 只知道您传递的类型的信息。如果你传递一个表单,那么你只会得到表单属性(即类型表单的属性),而不是你自己的表单的属性。

尝试封装事物。不要将整个表单传递给另一个表单。相反,传递您想在其他表单上使用的内容。

关于c# - 从另一种形式调用变量 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928071/

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