注册 登录
编程论坛 ASP.NET技术论坛

请教有关 VS winform 开发问题

tangchen668 发布于 2014-05-31 21:49, 2220 次点击
在vs  winform开发中,点击一个窗体上的控件弹出另一个窗体,如何让这个弹出的窗体唯一可选,原来的窗体不可选,并不是把这个窗体设为不可用,那样这个窗体会变为灰色,我想像messagebox.show()显示的效果一样,怎么解决这个问题啊?
12 回复
#2
yhlvht2014-05-31 23:25
使用ShowDialog()方法而不是Show()方法
#3
tangchen6682014-06-01 09:51
回复 2 楼 yhlvht
你能说的具体点吗,代码该怎么写?谢谢。
#4
步向巅峰2014-06-01 20:34
窗体对象名.ShowDialog();
#5
tangchen6682014-06-02 15:32
回复 4 楼 步向巅峰
谢谢,可是这个窗体关闭后要刷新原来的窗体,原来控件的窗体是Frm_roomList,我的代码如下:
  this.Close();               //关闭弹出的窗体
            Frm_roomList.ActiveForm.Close();  //关闭控件窗体
            Frm_main main = new Frm_main();
            main.Show();
            Frm_roomList room = new Frm_roomList();//创建新的控件窗体对象
            room.MdiParent =main;
            room.Show();  //显示刷新后的窗体

其中控件窗体的父窗体是 Frm_main ,原来用Show()可以刷新,这个也可以刷新,但原来的窗体还存在,  Frm_roomList.ActiveForm.Close(); 似乎不起作用,这是怎么回事呢?
#6
步向巅峰2014-06-02 15:51
刷新?嘛意思?不懂。用再次实例化的窗体代替原来的窗体?
#7
tangchen6682014-06-02 22:15
回复 6 楼 步向巅峰
可原来的窗体关不掉,我是这么写得  Frm_roomList.ActiveForm.Close();  //关闭控件窗体
可是没用,新窗体有,可原来的也还在,show()行得通,该这么操作啊?请不吝赐教,谢谢!
#8
步向巅峰2014-06-03 13:17
原来的窗体只要不是主窗体可以直接Close()掉或Hide()掉也行,似乎不用中间的ActiveForm吧
#9
tangchen6682014-06-04 15:21
回复 8 楼 步向巅峰
Frm_guestinfo只是窗体类型,我是通过创建对象显示窗体的,对象的范围不在其范围类,所以我才用这个方法,请问你有什么方法吗?谢谢。
#10
步向巅峰2014-06-04 17:19
额,我感觉你还是把相关代码粘出来,并且需要解决的地方标注一下最好,如果只是用语言表达的话容易理解上出现分歧
#11
tangchen6682014-06-05 11:19
回复 10 楼 步向巅峰
this.Close();               //关闭弹出的窗体
            Frm_roomList.ActiveForm.Close();  //关闭控件窗体   要关的就是这个窗体,  Frm_roomList只是这个窗体的窗体类型,我是通过对象来显示这个窗体的,对象的范围不在其中,所以才用这个方法,show()行得通,但showdialog()这行代码似乎没用
            Frm_main main = new Frm_main();
            main.Show();,
            Frm_roomList room = new Frm_roomList();//创建新的控件窗体对象
            room.MdiParent =main;
            room.Show();  //显示刷新后的窗体
#12
步向巅峰2014-06-05 16:48
。。。
我还是搞不明白你的程序结构,更搞不明白你想干啥
不过,你如果想关闭主窗体的话还是别想了,主窗体的Close()相当于关闭整个Appliaction,主窗体和子窗体都会被关闭,主窗体最多可以被隐藏
子窗体如果想从外窗体控制关闭的话直接close就可以关闭了,不过子窗体你还要使用的话Hide最好,窗体一旦Close过后资源被释放,就不能用Show了,会出现异常,用Hide隐藏窗体的话才能用Show调用
#13
tangchen6682014-06-06 17:26
谢谢
1