作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是最常见的问题之一,有 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/
我是一名优秀的程序员,十分优秀!