C# 如何将字符串值从一种形式传递到另一种形式';C中的s加载事件#
我需要从C# 如何将字符串值从一种形式传递到另一种形式';C中的s加载事件#,c#,winforms,C#,Winforms,我需要从表单1传递一个字符串值: public void button1_Click(object sender, EventArgs e) { string DepartmentName = "IT"; Form2 frm2 = new Form2(); Frm2.Show(); this.Hide(); } 进入表单2加载事件。例如: private void Form2_Load(object sender, EventArgs e) { Mes
表单1
传递一个字符串值:
public void button1_Click(object sender, EventArgs e)
{
string DepartmentName = "IT";
Form2 frm2 = new Form2();
Frm2.Show();
this.Hide();
}
进入表单2
加载
事件。例如:
private void Form2_Load(object sender, EventArgs e)
{
MessageBox.Show(DepartmentName);
// or
// string sql1 = "select Service_Name from Service, " +
// "EmployeeService where E_Dep = '" + DepartmentName + "' " +
// "and s_ID = Service_ID";
}
只需在Form2类上创建一个属性,并在显示Form2之前进行设置
public class Form2
{
...
public string MyProperty { get; set; }
private void Form2_Load(object sender, EventArgs e)
{
MessageBox.Show(this.MyProperty);
}
}
从表格1:
public void button1_Click(object sender, EventArgs e)
{
string departmentName = "IT";
Form2 frm2 = new Form2();
frm2.MyProperty = departmentName;
frm2.Show();
this.Hide();
}
请记住,表单和其他任何表单一样都是类
public class Form2 : form
{
public string ShowMe {get;set;}
private void Form2_Load(object sender, EventArgs e)
{
MessageBox.Show(ShowMe);
}
}
表格一
public void button1_Click(object sender, EventArgs e)
{
string DepartmentName = "IT";
Form2 frm2 = new Form2();
frm2.ShowMe = DepartmentName ;
Frm2.Show();
this.Hide();
}
你不能那样做。相反,您可以在构造函数上传递字符串值:
public class Form2
{
public Form2(string myParameter) : this()
{
//do whatever you need to do with myParameter
}
}
其他回答者也告诉过你如何使用公共财产。PRO-TIP 将来,请以更通用的方式考虑它:表单只是一个类,而加载事件只是一个方法
如果您试图在两个非窗体的对象之间传递值,则在一个类中会有一个公共属性,其他对象可以访问该属性。这是rsbarro答案的核心,我喜欢称之为“表单也是类”:)有一种更简单的方法将字符串从表单2传递到表单1。在Form2中创建表单和之间的关系,创建Form1的变量,调用Form1中的变量并为其赋值
public partial class Form_2 : Form
{
public readonly Form1 _form1;
public Form_2(Form1 form1)
{
_form1 = form1;
InitializeComponent();
}
private void Form2(object sender, EventArgs e)
{
_form1.Remark = txtbx_remark.Text;
}// Remark is a string in Form1 ....