您的位置:程序门 -> .net技术 -> c#



关于notifyicon 的问题,高手进


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于notifyicon 的问题,高手进
发表于:2007-03-12 20:12:37 楼主
单击notifyicon时,如果程序窗口是最小化,就让它还原。

如果窗口非最小化,当它在系统所有窗口最上层的时候,就最小化。当被别的窗口挡住时,希望激活它。如同金山词霸的效果。请问如何做?
                private   void   notifyicon1_click(object   sender,   eventargs   e)
                {
                        mouseeventargs   ee   =   (mouseeventargs)e;
                        if   (ee.button   ==   mousebuttons.left)
                        {
                                if   (this.windowstate   ==   formwindowstate.minimized   ¦ ¦   getforegroundwindow()   !=   this.handle)
                                {
                                        this.windowstate   =   formwindowstate.normal;
                                        this.activate();
                                }
                                else
                                {
                                        this.windowstate   =   formwindowstate.minimized;
                                }
                        }
                }

我用getforegroundwindow()来判定,并不对。有什么函数来判断程序窗口被别的窗口遮住了?
发表于:2007-03-12 20:34:561楼 得分:0
gettopwindow()
发表于:2007-03-12 20:49:532楼 得分:0
还是不行啊
发表于:2007-03-12 21:02:243楼 得分:0
你恢复一下窗体的状态.
windowstate   =   formwindowstate.normal;
或者
[dllimport( "user32.dll ",   setlasterror   =   true,   charset   =   charset.auto)]
public   static   extern   int   setforegroundwindow(intptr   windowhandle);
//调用
setforegroundwindow(this.handle);
发表于:2007-03-12 21:21:054楼 得分:0
还是不行阿。
再问个问题,最大化窗口,为啥先是最大化,然后全屏了?
private   void   buttonmax_click(object   sender,   eventargs   e)
                {
                                this.visible   =   true;
                                this.windowstate   =   formwindowstate.maximized;
                                this.invalidate();
                        }
还有点击最小化,窗口往左下角闪。能否改为向右下角闪?
发表于:2007-03-12 21:34:525楼 得分:0
mark
发表于:2007-03-12 22:39:496楼 得分:0
private   void   notifyicon1_doubleclick(object   sender,   system.eventargs   e)
{
bool   c=!b;
this.visible=b;
this.windowstate=formwindowstate.normal;
b=c;
}

private   void   form1_resize(object   sender,   system.eventargs   e)
{
if(this.windowstate==formwindowstate.minimized)
{
bool   d=!b;
this.visible=b;
b=d;
}
}
发表于:2007-03-12 22:56:147楼 得分:0
系统托盘吧
发表于:2007-03-13 19:31:358楼 得分:0
怎么写啊?


快速检索

最新资讯
热门点击