掩盖主窗口的两种方式

作者: 新闻动态  发布:2020-01-03

写过三个主次,要求在前后相继运维的时候主窗口隐蔽,只在系统红树莓里展现一个图标。长久以来采纳的不二等秘书籍都以设置窗口的ShowInTaskBar=false, WindowState=Minimized。不过不常开掘就算那样的方法能够使主窗口隐敝不见,可是在用Alt+Tab的时候却得以望见那么些顺序的Logo并把那一个窗口彰显出来。由此这种情势其实并不可能满足供给。

由此钻探,又找到多个章程。

方法一: 重写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();
            }

        }

 

本文由全球彩票历史版本发布于新闻动态,转载请注明出处:掩盖主窗口的两种方式

关键词:

上一篇:像Asp同样自在分页展现数据
下一篇:没有了