• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 224  文章 - 41  trackbacks - 0
            <2010年5月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            享受編程

            常用鏈接

            留言簿(11)

            隨筆分類(159)

            隨筆檔案(224)

            文章分類(2)

            文章檔案(4)

            經典c++博客

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            原文地址:http://www.84ren.com/read.php?tid-31409.html
            大家好 我是GIS理想 當我們做C#開發的時候 也就是說只要是應用程序開發的時候 有一個問題是要經常遇到的 就是當我們點擊打開新窗口的問題 如何判斷窗口已經打開了 因為如果不做判斷的話 明顯會出現問題 :每點擊一次 就會加載一個相同的窗口 這個是不對的

            一般我們打開一個新窗口是這樣的:

            Private void button_Click(object sender,EventArgs e)

            {

            Frm frm=new Frm();

            Frm.show();

            }
            這個是經常要用到的 呵呵 尤其是我這樣的新手 。。。。。。

            很明顯 這樣每點擊一次 都會出來一個新的Frm窗體的 那么怎么判斷當前的窗體已經加載呢

            方法一 用window api(沒用這里過 不敢妄言)

            方法二 先實例化一個窗體,然后在點擊事件里讓它顯示 如下:

            Frm frm= new Frm();
                    private void pictureBox2_Click(object sender, EventArgs e)
                    {
                     
                        if (!frm.Created)
                        {
                            f = new Frm();
                            f.Show();
                        }
                      }

            很明顯 這個貌似能實現只出來一次 但是隨之而來的問題是 事先就實例化了這個窗體 這在代碼編寫里是不好的習慣

            要是有很多的窗體的話 加載程序的時候就很占系統資源了 所以這樣的寫法也不可取

            方法三 聲明一個窗體變量 然后動態的創建并顯示

            其實這個方法來自于第二個方法的思路 認真分析一下第二個方法可以看到 之所以不可取是因為在聲明的時候直接實例化了 那么我們不實例化它 只聲明一個窗體變量 不就行了么?

            是的 例子代碼如下:

            //這句放在窗體的初始化的地方 不是點擊事件里最佳addPlaceMark是窗體的name

            private addPlaceMark addplacemark;

            //下面的放在彈出窗體的點擊事件里即可

            if (addplacemark == null || addplacemark.IsDisposed)

                        {

                            addplacemark = new addPlaceMark();

                            addplacemark.Show();

                        }


                        else

                        {

                            addplacemark.WindowState = FormWindowState.Normal;

                            addplacemark.Activate();

                            addplacemark.Show();

                        }

            這樣就可以了 效果很好 呵呵

            好了 總結完畢 擱筆收工



            ps:
            應用程序啟動與關閉事件 Form 和 Control 類和應用程序啟動與關閉有關的時間。
               

               當 Windows Form 應用程序啟動時,會以下列順序引發主要表單的啟動事件:
                    System.Windows.Forms.Control.HandleCreated
                    System.Windows.Forms.Control.BindingContextChanged
                    System.Windows.Forms.Form.Load
                    System.Windows.Forms.Control.VisibleChanged
                    System.Windows.Forms.Form.Activated
                    System.Windows.Forms.Form.Shown

                 當應用程序關閉時,會以下列順序引發主要表單的關閉事件:         
                   System.Windows.Forms.Form.Closing
                    System.Windows.Forms.Form.FormClosing
                    System.Windows.Forms.Form.Closed
                    System.Windows.Forms.Form.FormClosed
                    System.Windows.Forms.Form.Deactivate

            posted on 2010-08-29 22:46 漂漂 閱讀(3488) 評論(0)  編輯 收藏 引用 所屬分類: c#開發
            9999国产精品欧美久久久久久| 久久免费看黄a级毛片| 久久精品国产一区二区三区不卡| 大伊人青草狠狠久久| 99精品伊人久久久大香线蕉| 亚洲伊人久久成综合人影院 | 国产69精品久久久久观看软件| 伊人久久国产免费观看视频| 少妇内射兰兰久久| 99久久国产热无码精品免费久久久久 | 久久人人爽人人爽人人片av高请| 久久午夜电影网| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 久久亚洲天堂| 青春久久| 无码超乳爆乳中文字幕久久| 人人狠狠综合久久亚洲| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 中文字幕乱码人妻无码久久| 色婷婷狠狠久久综合五月| 伊人久久综合热线大杳蕉下载| 久久精品国产精品青草| 久久精品一本到99热免费| 97久久精品国产精品青草| 青青青青久久精品国产| 国产精品乱码久久久久久软件 | 女人香蕉久久**毛片精品| 国产精品亚洲综合专区片高清久久久 | 久久国产福利免费| 国产成人久久精品一区二区三区| 亚洲欧美伊人久久综合一区二区| 麻豆亚洲AV永久无码精品久久| 国产精品欧美亚洲韩国日本久久 | 久久露脸国产精品| 久久精品国产72国产精福利| 2021最新久久久视精品爱| 久久99国产精品一区二区| 波多野结衣久久一区二区| 九九久久精品无码专区| …久久精品99久久香蕉国产| 狠狠色综合网站久久久久久久高清|