gpt4 book ai didi

c# - 如何从另一个窗体调用一个函数

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

这可能是最常见的问题之一,有 FORM1 和 FORM2,我如何调用一个函数(在 FORM1 上),例如:MySQLConnect from FORM2 .我尝试了几个选项,但我无法让它工作,在第二次尝试中,我尝试从按钮调用函数,但没有成功。

Form1.cs(我的第一次尝试:)

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

Form2 form2 = new Form2(this);
}

public void MySQLConnect(object sender, EventArgs e)
{
// Starting a MySQL connection
}
}

Form2.cs(我的第一次尝试:)

public partial class Form2 : Form
{
Form1 mainForm;

public Form2(Form1 mainForm)
{
InitializeComponent();

this.mainForm = mainForm;
// call function on form1 MySQLConnect()
mainForm.MySQLConnect();
}
}

Form1.cs(我的第二次尝试:)

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public void MySQLConnect(object sender, EventArgs e)
{
// Starting a MySQL connection
}
}

Form2.cs(我的第二次尝试:)

public partial class Form2 : Form
{


public Form2()
{
InitializeComponent();
}

private void btnMySQLConnect(object sender, EventArgs e)
{

Form1 myForm1 = new Form1();
myForm1.MySQLConnect(sender, e);
}

}

请帮忙!

最佳答案

如果您传递 MySqlConnect 期望的参数,您的第一个示例就可以工作。

public partial class Form2 : Form
{
Form1 mainForm;

public Form2(Form1 mainForm)
{
InitializeComponent();

this.mainForm = mainForm;
mainForm.MySQLConnect(this, new EventArgs());
}
}

但是,我无法想象名为 MySqlConnect 的函数可以用传递的参数做什么。
所以最好在方法定义中去掉它们,调用时不要传递任何东西。

我同意上面的评论。为什么要在 Form 实例中隐藏如此重要(并且通常是必需的功能)?您必须在需要连接到数据库的任何地方传递此表单实例。最好准备一些静态服务类(在数据库访问层中)来进行这项工作

关于c# - 如何从另一个窗体调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22393273/

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