wuaixql 发表于 2018-1-8 11:47

浅谈C#WinForm窗体间的传值与窗体的隐藏与显示

有Frm1(登录窗体,如图1)    Frm2(主窗体,如图2)
图1                  图2

登录成功后,将(Frm1)登窗体隐藏,显示(Frm2)主窗体,并将用户名的文本框的内容传给Frm2,实现代码如下
Frm1 frm = new Frm1 ();
                        frm.stuno = userid;
                        this.Hide();
                        frm.ShowDialog(this);


注意!!!传值的时候一定要在Frm2里面创建一个成员变量 例如: public string userid;


将登录的用户名传过去后,进行修改密码,修改密码成功后,我要将主窗体关闭(this.Close();)然后显示登录窗体
this.Close();
Frm1 login = new Frm1 ();
                  login.ShowDialog();


但是!!!   出现了一个严重的BUG   就是我修改密码成功后,将主窗体关闭,显示主窗体,如果这时候我点击登录窗体右上角的关闭按钮,虽然能关闭窗体,但是进程还是在运行,关不掉进程!




所以,求吾友们教教我正确的窗体显示与隐藏的方法!   我的求知欲望很强,(代码尽量简单点!枚举暂时不懂):lol

非凡公子 发表于 2018-1-8 14:11

北大青鸟还是这个项目啊哈哈

haio1186 发表于 2018-1-8 12:33

方法一:
            Frm2 fm = new Frm2 ();
            this.Visible = false;
            fm.ShowDialog();
            this.Dispose();
            this.Close();
方法二:
         Frm2 为主显示窗口,加载方法里面把Frm1作为一个委托呈现出来,就会先显示Frm1,成功this.close(),失败app.exit()

我叫不及 发表于 2018-1-8 12:00

窗体FormClosed事件Application.Exit();马上结业了

wuaixql 发表于 2018-1-8 12:03

谢了!    青鸟学子真是无处不在,哈哈!   S1的MyKtv可以让我借鉴下么?   

葫芦炒鸡蛋 发表于 2018-1-8 13:06

直接System.Environment.Exit(0);就退出程序了。

wlx147520 发表于 2018-1-8 13:15

学习学习

寂寞空庭春欲晚 发表于 2018-1-8 13:17

System.Environment.Exit(0); 这个是最残暴的,推荐使用

我叫不及 发表于 2018-1-8 14:11

说实话上面大佬说的我看不懂,ktv还没开始做,还2周结业考,ktv是结业考之后的事情了

liuzihao777 发表于 2018-1-8 15:19

wuaixql 发表于 2018-1-8 12:03
谢了!    青鸟学子真是无处不在,哈哈!   S1的MyKtv可以让我借鉴下么?

https://pan.baidu.com/s/1kVainuJ
拿走不谢,7天可见!学的不太好~瞧瞧就行,没啥借鉴的!!!青鸟青鸟
页: [1] 2 3
查看完整版本: 浅谈C#WinForm窗体间的传值与窗体的隐藏与显示