最近在學習TCP/UDP,線程那部分,感覺好難,但是若不努力迎上去難道問題自己就能迎刃而解麼?既然什麼都要自己不斷努力那就好好加油吧!
今天就記錄一下我之前各種找的窗口切換問題吧~
1、第一個方法比較簡單,也比較萌,是我最近無意間發現的~
1 public MainFrom_Client()
2 {
3 InitializeComponent();
4 SetMainTreadState();
5 }
6
7 //先設定主窗體(也就是MainFrom_Client)的透明度和任務欄狀態
8 private void SetMainTreadState()
9 {
10 //這個其實是障眼法!把主窗體(也就是MainFrom_Client)的弄成隱形的,
11 //只需要把Opacity改成100就出來了,哈哈哈哈哈哈哈哈
12 this.Opacity = 0;
13 //然後在把菜單欄運行的顯示也隱形掉
14 this.ShowInTaskbar = false;
15 }
16
17 private void ResetMainThreadState()
18 {
19 this.Opacity = 100;
20 this.ShowInTaskbar = true;
21 //把當前控件帶到前面來就好了
22 this.BringToFront();
23 }
此時窗體是隱形的,可以隨便重新設定一個函數,等滿足設定的某個特定條件時就調用ResetMainThreadState()函數,這樣主窗體MainFrom_Client就會顯示出來了~
萌萌哒的掩耳盜鈴方式~
2、還有一個就是實打實的窗體調用問題了(查了好久的知識,累死寶寶了T^T)
我的Program.cs文件,先確定最先出現的登錄界面Login_interface()。
1 static void Main()
2 {
3 Application.EnableVisualStyles();
4 Application.SetCompatibleTextRenderingDefault(false);
5 Login_interface login_1 = new Login_interface();
6 login_1.Show();
7 Application.Run();
8 }
一般的Program.cs文件裡都是Application.Run(new Login_interface());,這樣最大的問題就是,如果我從登錄界面進入用戶界面,想要關閉登錄界面的話,系統就會自動以為你退出了程序,這樣我就沒辦法進入到用戶界面,此時如果我非要進入用戶界面的話,就可以用類似1的方法,用隱藏等各種方式以此不顯示登錄界面。
這種方法其實不錯,可是我就是有點死性子,所以我一定要關閉登錄界面,所以在Program.cs中設定好了Application.Run();,這樣我後面怎麼“虐待”登錄界面,都不會影響程序的繼續使用。
然後就是我的登錄界面的程序了~簡單了吧~
1 #region 由登陸界面進入到用戶界面
2 private void button1_Click(object sender, EventArgs e)
3 {
4
5 if (textBox_UserName.Text == "1" && textBox_PassWord.Text == "1")
6 {
7 this.Close();
8 User_Panel fm = new User_Panel();
9 fm.Show();
10 }
11 else
12 {
13 MessageBox.Show("用戶名與密碼錯誤,請重新輸入");
14 }
15 }
16 #endregion