静态调用非静态C#

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:31:11
Form_admin.Hide();
Form_set.Hide();
loginmain.Hide();
用于隐藏这三个窗体
错误提示为:
非静态的字段、方法或属性“System.Windows.Forms.contro.hide()”要求对象引用
xunmb:那如何实例化??查到过,需要用new??咋用啊??

Form_admin.Hide();
Form_set.Hide();
loginmain.Hide();
login a = new login();
this.Close();
a.Show();
关闭前三个窗体,马上转跳到login登陆窗体

Form form1=new Form();
form1.show(); //或者是form1.hide();---也就是说只有类对象才可以进行静态的方法调用.如果对当前活动的窗口进行隐藏可以:this.Hide();
Form.show();是不对的...

由于我看不到你全部的代码,我只能提供两种解决方案:
1.建立页面之间的父子关系,把admin2设置成父窗口
2.构造函数的传窗口:
form1里:

private void button1_Click(object sender, EventArgs e)
{
Form form2 = new Form2(this);//传递的是当前窗口form1
form2.Show();
//没有关闭form1;
}

form2里:

Form1 form1;
public Form2(Form1 form)
{
InitializeComponent();
this.form1 = form;
}

private void button1_Click(object sender, EventArgs e)
{
form1.Close();//这个就能关闭打开的form1了,因为form1对象在form2里声明存在的...
this.Close();

}

我调试过了,可以实现,具体的还是要你来改写

非静态字段需要用new 来实例化才可以引用。。。就是操作。。
估计你是没有实例化。。。不知道对不对。。呵呵。。

用ne