我试图点击一个表单中的button,这样做会隐藏现有的表单并显示新的表单,虽然我遇到了问题,而且屏幕上不同位置的“生成”表单也出现问题!
我的代码如下:
private voID button1_Click(object sender,EventArgs e) { (new Form3()).Show(); (new Form2()).HIDe(); }
此代码显示新的窗体好,但form2不隐藏
Python脚本输出使用C#redirect
点击文本字段时,自动启动windows tablet中的键盘
windows *** 作系统体系结构书
如何deBUGging“错误创build窗口句柄”错误?
是否有可用于可移植类库的System.Environment.Machinename的等价物?
从命令提示符下运行控制台应用程序,而不启动新的控制台窗口
在windows启动时启动wpf应用程序
打开自定义文件,参数总是空的
Registry.SetValue不适用于x86
在sles中运行.NET 11
您正在创建一个Form2的新实例并隐藏它。 我猜你正在寻找这个:
private voID button1_Click(object sender,EventArgs e) { (new Form3()).Show(); this.HIDe(); }
如果你想隐藏一些表单,你需要在它的正确实例上调用.HIDe()方法。 所以例如当你创建表单时,你可以把它存储到一些变量中:
Form2 form2 = new Form2();
稍后当你想隐藏这个表单时:
form2.HIDe();
你正在隐藏一个新的表单。 你应该做的是保持对你打开的表单的引用,然后隐藏它:
private voID button1_Click(object sender,EventArgs e) { form3.Show(); form2.HIDe(); } private Form2 form2 = new Form2(); private Form3 form3 = new Form3();
代码(new Form2()).HIDe(); 实例化Form2的新实例。 为了隐藏现有的表单,您需要引用它。
您不能创建一个新的Form2实例,并希望隐藏现有的Form2。 将现有的Form2存储到您的类的实例变量,并在该实例上调用HIDe()。
如果你想隐藏一个现有的表单, (new Form2()).HIDe()不会这样做,因为这将从Form2类实例化一个新的表单。
假定button1位于要隐藏的窗体上,您需要:
private voID button1_Click(object sender,EventArgs e) { (new Form3()).Show(); this.HIDe(); }
如果它不在同一个表单中,则需要对要隐藏的表单的引用:
private Form2 form2 = new Form2(); private Form3 form3 = new Form3(); form2.Show(); private voID button1_Click(object sender,EventArgs e) { form2.HIDe(); form3.Show(); }
@ BFree's是一个很好的答案。 只是为了这里的一些代码与Form1有两个按钮切换两个其他子窗体Form2和Form3后,Form1_Load做初始实例化和Show()。
Form2 f2 = null; Form3 f3 = null; private voID Form1_Load(object sender,EventArgs e) { f2 = new Form2(); f2.Show(); f3 = new Form3(); f3.Show(); } private voID button1_Click(object sender,EventArgs e) { if (f2.Visible) { f2.HIDe(); } else { f2.Show(); } } private voID button2_Click(object sender,EventArgs e) { if (f3.Visible) { f3.HIDe(); } else { f3.Show(); } }
总结以上是内存溢出为你收集整理的使用button/事件来显示一个新的窗体并隐藏现有的C#全部内容,希望文章能够帮你解决使用button/事件来显示一个新的窗体并隐藏现有的C#所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)