程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#隱蔽主窗口的辦法小結

C#隱蔽主窗口的辦法小結

編輯:C#入門知識

C#隱蔽主窗口的辦法小結。本站提示廣大學習愛好者:(C#隱蔽主窗口的辦法小結)文章只能為提供參考,不一定能成為您想要的結果。以下是C#隱蔽主窗口的辦法小結正文


本文實例總結了C#隱蔽主窗口的辦法。分享給年夜家供年夜家參考,詳細以下:

請求在法式啟動的時刻主窗口隱蔽,只在體系托盤裡顯示一個圖標。一向以來采取的辦法都是設置窗口的ShowInTaskBar=false, WindowState=Minimized。然則有時發明雖然如許的辦法可使主窗口隱蔽不見,然則在用Alt+Tab的時刻卻可以看見這個法式的圖標並把這個窗口顯示出來。是以這類辦法其實其實不能知足請求。

辦法一: 重寫setVisibleCore辦法

protected override void SetVisibleCore(bool )
{
   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();
  }
}

願望本文所述對年夜家C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved