热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

请教一下在C#的WinForm中一个窗体切换另一个窗体的问题

请问:在C#的WinForm中窗体frmOne窗体frmTwo按钮btnOKfrmOne窗体切换到frmTwo窗体时,frmOne关闭frmTwo显示这
请问:
在C#的WinForm中

   窗体frmOne   窗体frmTwo  按钮btnOK
 
  frmOne窗体切换到frmTwo窗体时,frmOne关闭frmTwo显示   这个地方应该怎么写代码?请教。。

22 个解决方案

#1


在frmOne的按键加个点击事件
加入如下代码:
frmTwo m1 = new frmTwo();
m1.ShowDialog();
this.Close();

#2


frmTwo frmT = new frmTwo();
frmT.Show();
this.Close();

#3


楼上的试过么,在单线程环境下,this.Close() 以后,frmT也会被一同关闭的

#4


在frmOne的按键加个点击事件
加入如下代码:
frmTwo user = new frmTwo();
this.Hide();
user.ShowDialog();//or user.Show()

#5


to  emp(Thinking)and tianwai112(星星之火)
///////////////////////////////////////////////////////////
在frmOne的按键加个点击事件
加入如下代码:
frmTwo m1 = new frmTwo();
m1.ShowDialog();
this.Close();   

frmTwo frmT = new frmTwo();
frmT.Show();
this.Close();

注:这两种方法都不能实现搂住的需求。如同 Tenner(Tenner)所说。
////////////////////////////////////////////////////////////
to  morou_007(默柔)

在frmOne的按键加个点击事件
加入如下代码:
frmTwo user = new frmTwo();
this.Hide();
user.ShowDialog();//or user.Show()
注:这种方法不能实现,还有严重问题。你想象如果frmOne多次被打开,会出现什么问题?

#6


FormONw formOne=new FormOne;
formone.Hide();
FormTwo formtwo =new FormTow;
fromtow.ShowDialog();

主窗体如果执行close操作整个程序都将关闭
所以要隐藏主窗体才对!!!

#7


FormOne formOne=new FormOne;
formone.Hide();
FormTwo formtwo =new FormTow;
fromtow.ShowDialog();

#8


支持与影同舞
FormOne formOne=new FormOne;
formone.Hide();
FormTwo formtwo =new FormTow;
fromtow.ShowDialog();

#9


hide()只是隐藏窗体,而不是关闭,close()是关闭,但却不适用于默认启动窗体(若关闭默认启动窗体时整个启动窗体也要关闭),最好的办法是在启动第一个窗体的 apllication.run()中放上一个方法。new Form1();也就是默认启动窗体Form2

#10


同时,不能Close,得用Hide
FormTwo newfrm = new FormTwo();
newfrm.Show();
this.Hide();

#11


同时,不能Close,得用Hide
FormTwo newfrm = new FormTwo();
newfrm.Show();
this.Hide();

#12


用Hide()方法隐藏,除非你是MDI窗体

#13


也可以主窗体了另设一个,隐藏即可,这样New的窗体就可以随便关了。不过要处理好this.Close()和Application.Exit()的关系,否则只是Close无法退出程序的。
例如C/S的用户登录界面

#14


我想重新叙述一下这个过程:
在C#的WinForm中

有三个窗体

   窗体frmOne(按钮btnOneOK)   
   窗体frmTwo(按钮btnTwoOK)
   窗体frmThree(按钮btnThreeExit)

话题A:    系统载入frmOne,当点击btnOneOk时激活frmTwo窗体同时frmOne要关闭,如果是这样的话会
出现整个程序关闭了~~

    接着上边的话题A去想如果不关闭frmOne,只是隐藏frmOne,那么程序还可以运行,但是还有一个是frmThree窗体,假如点击frmTwo上边的btnTwoOK时,frmTwo隐藏或关闭,frmThree显示,这样程序是可以运行的,但是如果点击btnThreeExit时想让整个程序关闭,这该如何做呢?

#15


只能用hide方法,不能用CLOSE。
如果要从frmthree关闭整个程序则要设置frmone的close()事件

#16


formTwo 设置一个属性formOne 
formThree 设置两个属性 formTwo,formOne

formOne show formTwo 时 formTwo.formOne = this; formOne.Hide();

formTwo show formThree 时 formThree.formTwo = this; formThree.formOne = formTwo.formOne;formTwo.Hide();

formThree.Close 事件 里 formThree.formOne.Close();formThree.formTwo.Close();


#17


MARK

#18


我的理解是只要main函数不要放在formOne里面,另外开一个类来写main函数,formOne就可以close了

#19


//new class ,just has main function
static void Main() 
{
Form1 form1=new Form1();
form1.ShowDialog();
}
//Form1 button click event
private void button1_Click(object sender, System.EventArgs e)
{
this.Dispose();
Form2 form2=new Form2();
form2.ShowDialog();
}

#20


窗体一上面有一个按键,代码如下:
private Form form_2=new form2()
private void button1_click(object sender,System.eventargs e)
{
   form_2.show();
   this.hide();
}
第二个窗体可以显示出来,可是在关闭第二个窗本时总会出现错误.

#21


呵呵~~我知道用什么方法了~~我研究了一个小时,终于让我研究出来了,

实现方法:

在C#的WinForm中

有三个窗体

   窗体frmOne(按钮btnOneOK)   
   窗体frmTwo(按钮btnTwoOK)
   窗体frmThree(按钮btnThreeExit)

frmOne载入点击按钮btnOneOK时  把frmOne的属性 ShowInTaskbar 设置为 false
然后frmTwo.show();
frmTwo载入以后
点击btnTwoOK时激活frmThree窗体
这时如果点击按钮 btnTreeExit 时 用frmOne.ActiveForm.Close() 方法
就可以关闭整个应用程序了

----------------------------------------

在此谢谢大家的热心帮忙。。。

问题解决---

#22


frmTwo frm=new frmTwo();
this.close();

application.run(frm);



推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 第一步:PyQt4Designer设计程序界面该部分设计类同VisvalStudio内的设计,改下各部件的objectName!设计 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • Android源码中的Builder模式及其作用
    本文主要解释了什么是Builder模式以及其作用,并结合Android源码来分析Builder模式的实现。Builder模式是将产品的设计、表示和构建进行分离,通过引入建造者角色,简化了构建复杂产品的流程,并且使得产品的构建可以灵活适应变化。使用Builder模式可以解决开发者需要关注产品表示和构建步骤的问题,并且当构建流程发生变化时,无需修改代码即可适配新的构建流程。 ... [详细]
  • Java图形化计算器设计与实现
    本文介绍了使用Java编程语言设计和实现图形化计算器的方法。通过使用swing包和awt包中的组件,作者创建了一个具有按钮监听器和自定义界面尺寸和布局的计算器。文章还分享了在图形化界面设计中的一些心得体会。 ... [详细]
  • Visual C# TabControl中TabPage分离成若干个Form的小办法
    写Visual的同学们都会用到这个TabControl的控件,然后会分好几页的TabPage,每页都有很多控件和业务逻辑,但是每页的关系也 ... [详细]
  • VS2010MFC(对话框:为对话框添加控件)
    转自:http:www.jizhuomi.comsoftware151.html上一讲创建了一个名为“Addition”的工程,目的是生成一个实现加法运 ... [详细]
author-avatar
郭雪峰Rongeqw_983
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有