C#WinForms-Form2上的按钮,用于隐藏Form1
所以我有两种形式:C#WinForms-Form2上的按钮,用于隐藏Form1,c#,winforms,C#,Winforms,所以我有两种形式: 表格1 表格2 Form2上有一个按钮,我希望在单击时隐藏Form1 从表单2中的按钮单击按钮 var mainFrm = new Form1(); mainFrm.Hide(); 这没用。我显然错过了一些东西,但似乎无法理解 非常感谢您的帮助 如果您的form1已经出现在页面中,那么为什么需要再次初始化它?只需将可见状态设置为false即可将其隐藏 mainFrm.Visible = false; 如果看不到更多的代码,很难回答,但您肯定需要引用旧的表单1,它已经可
- 表格1
- 表格2
var mainFrm = new Form1();
mainFrm.Hide();
这没用。我显然错过了一些东西,但似乎无法理解
非常感谢您的帮助 如果您的form1已经出现在页面中,那么为什么需要再次初始化它?只需将可见状态设置为false即可将其隐藏
mainFrm.Visible = false;
如果看不到更多的代码,很难回答,但您肯定需要引用旧的
表单1
,它已经可见并隐藏。您正在创建一个新表单并将其隐藏。您必须定义Form2类来存储对主表单的引用
public partial class Form2 : Form
{
/* reference to the main form will be stored here */
private Form1 _mainForm;
public Form2(Form1 mainForm)
{
InitializeComponent();
/* Initialize the main form field */
this._mainForm = mainForm;
}
private void button1_Click(object sender, EventArgs e)
{
/* Set the main form visibility to false */
_mainForm.Visible = false;
}
}
现在,在创建Form2实例时,只需将主窗体添加到构造函数:
/* Show the form2 */
_form2 = new Form2(this);
_form2.Show();
注意:此将引用创建Form2对象的表单。您可以在Form1中创建静态表单类型属性,并在显示Form1时进行设置,然后使用它隐藏表单 这是一个对我有用的代码
private void button1_Click(object sender, EventArgs e)
{
var objForm1 = new Form1();
Form1.Fom1ref = objForm1;
objForm1.Show();
}
private void button2_Click(object sender, EventArgs e)
{
Form1.Fom1ref.Hide();
}
以下是应在Form1中设置的属性
public static Form Fom1ref { get; set; }
为什么要创建Form1的新实例
var mainFrm=new Form1()代码>?如果您的目的是隐藏一个已经显示的Form1,那么您需要获取该已经存在的表单的句柄并对其调用hide()。