日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解.NET2.0開發(fā)Winform程序經(jīng)驗

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

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供云南網(wǎng)站建設(shè)、云南做網(wǎng)站、云南網(wǎng)站設(shè)計、云南網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、云南企業(yè)網(wǎng)站模板建站服務(wù),10年云南做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

默認(rèn)的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)情況進行選擇使用。


當(dāng)前名稱:詳解.NET2.0開發(fā)Winform程序經(jīng)驗
URL網(wǎng)址:http://www.5511xx.com/article/djcgcjg.html