2017-02-14 39 views
-2

我正在使用WinForms。我有2个表格,Form1(主表格)和Form2。 Form1中有2个变量,即Computer_SelectedDefault_Selected。当我点击Form1中的一个按钮,然后显示Form2时,我改变了其中一个变量。在Form2中,我想知道变量bool的值。我怎样才能做到这一点?从其他表单中查找变量值

表1

public bool Computer_Selected; 
    public bool Default_Selected; 

    private void btn_Public_Kiosk_Click(object sender, EventArgs e) 
    { 
     Computer_Selected= true; 
     Default_Selected = false; 
     //show form2 and hide this form-(form1)... 
    } 

表2

private void Form1_Load(object sender, EventArgs e) 
    { 
     Console.WriteLine("Bool Value = " + Computer_Selected); 
    } 
+2

https://msdn.microsoft.com/en-us/library/f6525896(v=vs.90).aspx – BugFinder

+2

你可以在这里找到一些有用的选项:[窗体之间的相互作用 - 如何从另一个窗体更改窗体的控件?](http://stackoverflow.com/a/38769212/3110834) –

+0

您可以尝试将值传递给第二个窗体,我认为这是语法'private void btn_Public_Kiosk_Click(object sender,EventArgs e){Computer_Selected = true; Default_Selected = false; Form2 frm2 = new Form2(Computer_Selected); frm2.Show();}'然后在form2中'公共Form2(bool computerSelected){InitializeComponent(); //根据需要使用值}' – Nope

回答

0

如果你只有一个Form1的实例,不是你可以设置变量static

public static bool Computer_Selected; 
public static bool Default_Selected; 

然后在你的窗体2,你可以访问它们:

private void Form2_Load(object sender, EventArgs e) 
{ 
    Console.WriteLine("Bool Value = " + Form1.Computer_Selected); 
} 
+0

这工作谢谢。我不知道为什么有人首先低估了你的问题。 – taji01

+0

@ taji01可能是因为它是winforms的一个更基本的问题,你会发现它应该被标记而不是回答。 –

+0

@JayGould尽管这是很多人的基本要求,但在我写这个问题之前,我已经搜索了这个问题。我无法找到能够在表单之间传递变量的问题,所以我认为id问。我所能找到的只是在表单或人员之间传递数据,演示如何使用YouTube中的文本框来完成此操作。 – taji01