我有一个新手问题!
我所拥有的是3个窗体,例如frmMain,frmSub1,frmSub2。 我想要一个int 变量,它从frmSub或frmSub2中的进程获取值,然后在frmMain中用于另一个进程。
我在发布之前探讨了其他QA。但他们都没有满足我的好奇心。我刚看到一堆代码,但我想要一个有意义的explonation代码,为什么/如何工作。
非常感谢您的建议。
修改:
我根本没有这个查询的代码。目前还没有申请。我正处于计划阶段。抱歉“没有给出代码”。在我得到需要这个变量的阶段后,我可以编写代码。
答案 0 :(得分:0)
你可以这样做:
public class frmMain
{
public static int Vartoshare=100;
private void setvalues()
{
vartoshare=200;
}
}
然后在你的frmsub2表格中你可以打电话
int readvar = frmmain.vartoshare;
答案 1 :(得分:0)
解决方案1:您可以将int
变量传递给新表单Constructor
,并在NewForm
构造函数中指定该值。
试试这个:
Program.cs
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(0));
}
Form1代码:
int no = 10;
public Form1(int no)
{
this.no=no;
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(no);
this.Hide();
form2.ShowDialog();
}
表格2:代码
int no;
public Form2(int no)
{
this.no = no;
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
no = 20;
Form1 form1 = new Form1(no);
this.Hide();
form1.Show();
}
解决方案2 :您可以在public
中使用static
Form1
变量,并使用其类名以chid格式访问该变量。
试试这个:
Form1代码:
public static int no = 10;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
this.Hide();
form2.ShowDialog();
}
表格2:代码
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form1.no = 20; //access Form1 int variable
Form1 form1 = new Form1(no);
this.Hide();
form1.Show();
}