成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解.NET 2.0開發(fā)Winform程序經(jīng)驗

開發(fā) 后端
本文將介紹作者總結(jié)的兩點關(guān)于.NET 2.0及更高版本下,開發(fā)Winform程序的經(jīng)驗。相信通過這兩條經(jīng)驗,能幫助大家做好平時的工作。

1、帶有登錄窗口的Window程序啟動控制

默認的Main函數(shù)是:
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();


            Application.SetCompatibleTextRenderingDefault(false);

    Application.Run(new frmMain());


        }

關(guān)鍵的是Application.Run(new frmMain());這一句,如果Run函數(shù)里是主窗口,則就要另外想辦法在主窗口顯示之前讓用戶登錄;如果Run函數(shù)里創(chuàng)建的是登錄窗口,則登錄窗口完成其登錄工作之后,就只能隱藏,而不能關(guān)閉,否則整個應(yīng)用程序就結(jié)束了。

解決這種問題主要有兩種方法:

1)Application.Run(new frmMain());函數(shù)里創(chuàng)建主窗口,在主窗口加載后,顯示之前使之隱藏并顯示登錄窗口,如果登錄成功,則關(guān)閉登錄窗口,顯示主窗口;如果登錄失敗,則結(jié)束應(yīng)用程序。這樣處理有一個小問題,就是要無論登錄是否成功,實際都要加載主窗口的。好處是不用修改Main函數(shù),對一些用戶來說,可能更好控制一些。

2)修改Main函數(shù),使之在Application.Run(new frmMain());之前進行登錄驗證,登錄成功則正常運行,登錄失敗則結(jié)束應(yīng)用程序。大體過程如下:


        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            frmLogin login = new frmLogin();
            login.ShowDialog();    // 注意這個地方只能是ShowDialog,而不能是Show

            if(login.HasLogin)       // 判斷是否登錄成功
            {
                login.Close();
                Application.Run(new frmMain());
            }
            else
            {
                Application.Exit();
            }
        }


這樣做的好處是在登錄失敗時,直接關(guān)閉應(yīng)用程序,而無需加載主窗口。

實際兩種方法都可以達到相同的目的。

2、回車鍵按下時處理成等同于按下Tab鍵

常用的處理方法有兩個

1)響應(yīng)每一個要處理的控件的keypress事件,在該事件中判斷如果按下的是回車,讓下一個控件獲得焦點。代碼如下:


        private void txt_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar == 13)
            {


                //  nextControl.Focus();   //  使下一個控件獲得焦點。

      SendKeys.Send("{tab}");  // 這樣也是可以的。

            }


        }

2)所有要把回車處理成Tab的控件共享一個keypress事件,當(dāng)按下的是回車時,發(fā)送一個tab鍵。代碼如下 :


        private void my_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                SendKeys.Send("{tab}");
            }
        }


第一種處理方式是針對每一個控件寫事件,其好處是更好控制,尤其是在除處理回車按鍵外還要實現(xiàn)其他功能時,就只能這樣處理。第二種方式的好處是可以多個控件共享同一個事件,特別是在動態(tài)創(chuàng)建控件時,而對每個控件只處理回車時,可以動態(tài)的把事件掛到控件上,這樣就更顯示出這種方式的優(yōu)勢。不足是對控件除要處理回車外還要有其他個性功能時,就很難實現(xiàn)。

用戶可以根據(jù)實現(xiàn)情況進行選擇使用。

【編輯推薦】

  1. C#在WinForm開發(fā)中Label換行方法
  2. C#中使用多線程訪問Winform問題解決方案
  3. 跟MVP學(xué)WinForm視頻教程之一 WinForm基本知識
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2009-07-30 14:00:21

ASP.NET 2.0

2009-10-10 15:43:51

2010-01-14 18:14:22

VB.NET開發(fā)特點

2009-07-23 14:25:03

ASP.NET 2.0

2009-07-24 10:14:22

ASP.NET開發(fā)

2009-10-28 16:14:21

VB.NET編寫托盤程

2009-08-04 10:43:59

ASP.NET控件開發(fā)

2011-10-27 09:42:19

ASP.NET

2010-08-02 13:35:59

FlexBuilder

2009-07-23 13:26:21

2009-12-10 15:35:10

ASP.Net 2.0

2010-01-13 14:26:39

VB.NET開發(fā)

2011-06-03 10:15:13

2010-01-14 16:14:15

VB.NET界面設(shè)計

2009-09-11 12:31:15

C# WinForm控設(shè)置默認值

2009-03-06 17:49:19

ADO.NETWinForm視頻教程

2009-02-20 13:37:44

ADO.NETWinForm視頻教程

2009-08-20 09:30:03

C#開發(fā)WinForm

2010-01-13 18:17:00

VB.NET通信程序

2009-03-06 17:41:08

WinForm視頻教程ADO.NET
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 中文福利视频 | 国产精品日韩在线观看 | 亚洲一区二区在线视频 | 国产精品视频一区二区三 | 九九伦理片 | 国产高清视频一区 | 亚洲国产精品99久久久久久久久 | 成人毛片视频免费 | 国产精品揄拍一区二区久久国内亚洲精 | 成人在线免费观看视频 | 亚av在线| 精品视频在线免费观看 | 欧洲一级视频 | 天堂一区二区三区四区 | 日韩欧美一区二区三区免费观看 | 91p在线观看 | 欧美老少妇一级特黄一片 | 欧美韩一区二区三区 | 国产999精品久久久影片官网 | 久久美国 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 天天综合网天天综合 | 国产一级一片免费播放 | 9porny九色视频自拍 | 国产精品揄拍一区二区久久国内亚洲精 | 欧美自拍视频 | 欧美性网站| 免费国产一区二区 | 亚洲精品一区久久久久久 | av大全在线观看 | 国产精品久久久乱弄 | 欧美成人精品在线 | 亚洲综合首页 | 久久久九九 | 99久久久久久 | 精品av| 99精品视频在线观看免费播放 | 91最新视频 | 中国一级特黄真人毛片免费观看 | 精品久久电影 | 色综久久 |