国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

在C#隱藏主窗口的幾種方法

2024-07-21 02:26:08
字體:
來源:轉載
供稿:網友
國內最大的酷站演示中心!

寫過一個程序,要求在程序啟動的時候主窗口隱藏,只在系統托盤里顯示一個圖標。一直以來采用的方法都是設置窗口的showintaskbar=false, windowstate=minimized。但是偶然發現盡管這樣的方法可以使主窗口隱藏不見,但是在用alt+tab的時候卻可以看見這個程序的圖標并把這個窗口顯示出來。因此這種方法其實并不能滿足要求。

經過研究,又找到兩個方法。

方法一: 重寫setvisiblecore方法

protected override void setvisiblecore(bool value)
{
     base.setvisiblecore(false);
}

這個方法比較簡單,但是使用了這個方法后主窗口就再也不能被顯示出來,而且在退出程序的時候也必須調用application.exit方法而不是close方法。這樣的話就要考慮一下,要把主窗口的很多功能放到其他的地方去。

方法二: 不創建主窗口,直接創建notifyicon和contextmenu組件
這種方法比較麻煩,很多代碼都必須手工寫

static void main()
 {
            application.enablevisualstyles();
            application.setcompatibletextrenderingdefault(false);

            system.resources.resourcemanager resources =
                new system.resources.resourcemanager("myresource",  system.reflection.assembly.getexecutingassembly());
            notifyicon ni = new notifyicon();

            ni.balloontipicon = system.windows.forms.tooltipicon.warning;
            ni.balloontiptext = "test!";
            ni.balloontiptitle = "test.";
            //ni.contextmenustrip = contextmenu;
            ni.icon = ((system.drawing.icon)(resources.getobject("ni.icon")));
            ni.text = "test";
            ni.visible = true;
            ni.mouseclick += delegate(object sender, mouseeventargs e)
            {
                ni.showballoontip(0);
            };

            application.run();
}
 如果需要的組件太多,這個方法就很繁瑣,因此只是做為一種可行性研究。

方法三:前面兩種方法都有一個問題,主窗口不能再顯示出來。現在這種方法就沒有這個問題了

private bool windowcreate=true;
...
protected override void onactivated(eventargs e)
        {
            if (windowcreate)
            {
                base.visible = false;
                windowcreate = false;
            }

            base.onactivated(e);
        }

private void notifyicon1_doubleclick(object sender, eventargs e)
        {
            if (this.visible == true)
            {
                this.hide();
                this.showintaskbar = false;
            }
            else
            {
                this.visible = true;
                this.showintaskbar = true;
                this.windowstate = formwindowstate.normal;
                //this.show();
                this.bringtofront();
            }

        }

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 界首市| 兴和县| 邵阳市| 南岸区| 鄂托克前旗| 南华县| 大化| 西宁市| 明星| 汝南县| 囊谦县| 苍山县| 宁国市| 姜堰市| 宁陕县| 枣阳市| 保定市| 青冈县| 新巴尔虎左旗| 南木林县| 翁源县| 阿城市| 邢台市| 阳新县| 陇南市| 平武县| 阳西县| 东山县| 容城县| 潞城市| 海盐县| 张北县| 平乡县| 连云港市| 兴隆县| 富源县| 石河子市| 习水县| 恩平市| 余庆县| 中阳县|