C#点击Play按钮隐藏IntroScreen窗体报错:需对象实例调用Control.Hide()
问题修复方案
错误原因:IntroScreen是窗体的类名,而Hide()是实例方法,必须通过具体的窗体对象实例调用,不能直接用类名调用静态方法的方式使用它。
根据你的场景,有两种常用修复方式:
方式一:当前按钮所在窗体就是IntroScreen
如果btnPlay_Click方法是写在IntroScreen窗体类里的,直接用this指代当前窗体实例即可:
private void btnPlay_Click(object sender, EventArgs e) { Form1 f2 = new Form1(); f2.Show(); // this指代当前IntroScreen的实例 this.Hide(); }
方式二:IntroScreen是其他地方创建的实例
如果IntroScreen是在别的代码位置(比如Program.cs)创建的实例,需要获取到该实例的引用再调用Hide()。比如:
假设Program.cs中初始化IntroScreen的代码是:
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // 保存IntroScreen的实例引用 IntroScreen introInstance = new IntroScreen(); Application.Run(introInstance); }
如果需要在其他窗体中调用这个实例的Hide(),可以通过构造函数传参的方式传递实例引用,再调用方法。
内容的提问来源于stack exchange,提问作者YoRaN
相关产品推荐
相关产品推荐

