所以我有两种表格:
Form2 上有一个按钮,我想在单击该按钮时隐藏 Form1。
从 Form2 中的按钮单击按钮
var mainFrm = new Form1();
mainFrm.Hide();
这没有任何作用。我显然错过了一些东西,但似乎无法弄清楚。
任何帮助我们绝对感激!
如果你的form1已经存在于页面中,那为什么还需要再次初始化它呢?只需将可见状态设置为 false 即可隐藏它。
mainFrm.Visible = false;
在没有看到更多代码的情况下很难回答,但您肯定需要引用已经可见的旧
Form1
并将其隐藏。您正在创建一个新表单并将其隐藏。
您必须定义 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();
注意:this将引用创建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; }
我在登录表单中使用这个,当您按下form3上的登录按钮时,form3会隐藏,form1会出现。
private void button1_Click(object sender, EventArgs e) {
Form1 frm = new Form1();
frm.Show();
// If you want to Hide Form
this.Hide();
}