从第一个表单调用另一个表单函数
本文关键字:表单 函数 另一个 调用 第一个 | 更新日期: 2023-09-27 18:15:20
我希望标题足够清楚。让我解释一下:我正在做一个c# Winform应用程序。当我启动应用程序时,我有我的表单1启动,我有其他的表单,我可以通过点击按钮从它打开。
问题是,我在这些表格(表格2,表格3,表格4..)中有函数,我想从表格1开始。
目前这是我的代码
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// First Event, when I click in the toolstrip menu, I open the Form2 ("Ligne3")
private void ligne3ToolStripMenuItem_Click(object sender, EventArgs e)
{
var Ligne3 = new Ligne3();
Ligne3.Show();
}
然后,我在Form2中有组件(文本框,按钮,函数等)
public partial class Ligne3 : Form
{
public Ligne3()
{
InitializeComponent();
}
private void Ligne3_Load(object sender, EventArgs e)
{
//Some code
}
}
//Function I want to call from the Form1
public void send_email()
{
//Some code
}
如何启动send_email()函数从Form1(例如在加载事件期间)?
在调用show之前将Form2
或任何其他对象/变量的值赋给Linge3对象。在调用send_email()
之前,send_email()
中需要分配的值。如下所示
private void ligne3ToolStripMenuItem_Click(object sender, EventArgs e)
{
var ligne3 = new Ligne3();
//define variables/properties in Ligne3 for all values to be passed
//then assign them with corresponding values
ligne3.Value1 = objForm2.Value1;
ligne3.Value2 = objForm2.Value2;
ligne3.Value3 = objForm2.textBox1.Text;
ligne3.Value3 = objForm2.checkBox1.Value;
//and so on
ligne3.send_email();
ligne3.Show();
}
如果您正在单击Form1上的按钮,以启动和打开表单2,3,4等,并且在这些btn_click
处理程序中,您正在创建new
form2,3,3,4。然后,您将拥有对每个表单的引用,因此可以在刚刚创建的实例上调用各自的公共方法。如
public class Form1
{
private Form2 subForm2;
private void OpenForm2_Click(object sender, eventargs e)
{
subForm2 = new Form2();
subForm2.Show()
}
private void sendEmailBtn_Click(object sender, EventArgs e)
{
subForm2.Send_email();
}
}
从设计的角度来看,上面有很多错误,但我只是用它来表达这个想法。如果你在Form1的实例化之外创建Form2、form3、form4等的实例,那么你需要某种形式的构造函数或属性注入来提供实例引用。