浅析C#最小化编写

开发 后端
本文介绍C#最小化编写时隐藏为任务栏图标的 Window appllication.包括介绍设置WinForm窗体属性showinTask=false 等方法。

C#最小化编写

C#最小化编写时隐藏为任务栏图标的 Window appllication.

1.设置WinForm窗体属性showinTask=false

2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。

3.添加窗体最小化事件(首先需要添加事件引用):

  1. this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged);  
  2. //上面一行是主窗体InitializeComponent()方法中需要添加的引用  
  3. private void Form1_SizeChanged(object sender, EventArgs e){  
  4. if(this.WindowState == FormWindowState.Minimized){  
  5. this.Hide();  
  6. this.notifyIcon1.Visible=true;  
  7. }  

4.添加点击图标事件(首先需要添加事件引用):

  1. private void notifyIcon1_Click(object sender, EventArgs e){  
  2. this.Visible = true;  
  3. this.WindowState = FormWindowState.Normal;  
  4. this.notifyIcon1.Visible = false;  

5.可以给notifyIcon添加右键菜单:

主窗体中拖入一个ContextMenu控件NicontextMenu,点中控件,在上下文菜单中添加菜单,notifyIcon1的ContextMenu行为中选中NicontextMenu 作为上下文菜单。

  1. this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);  
  2. this.NicontextMenu = new System.Windows.Forms.ContextMenu();  
  3. this.menuItem_Hide = new System.Windows.Forms.MenuItem();  
  4. this.menuItem_Show = new System.Windows.Forms.MenuItem();  
  5. this.menuItem_Aubot = new System.Windows.Forms.MenuItem();  
  6. this.menuItem_Exit = new System.Windows.Forms.MenuItem();  
  7. thisthis.notifyIcon1.ContextMenu = this.NicontextMenu;  
  8. this.notifyIcon1.Icon = ((System.Drawing.Icon)
    (resources.GetObject( "NotifyIcon.Icon ")));  
  9. this.notifyIcon1.Text = " ";  
  10. this.notifyIcon1.Visible = true;  
  11. this.notifyIcon1.DoubleClick += new System.EventHandler
    (this.notifyIcon1_DoubleClick);  
  12. this.notifyIcon1.Click += new System.EventHandler(this.notifyIcon1_Click);  
  13. this.NicontextMenu.MenuItems.AddRange(  
  14. new System.Windows.Forms.MenuItem[]{  
  15. this.menuItem_Hide,  
  16. this.menuItem_Show,  
  17. this.menuItem_Aubot,  
  18. this.menuItem_Exit  
  19. }  
  20. //  
  21. // menuItem_Hide  
  22. //  
  23. this.menuItem_Hide.Index = 0;  
  24. this.menuItem_Hide.Text = "隐藏 ";  
  25. this.menuItem_Hide.Click += new System.EventHandler(this.menuItem_Hide_Click);  
  26. //  
  27. // menuItem_Show  
  28. //  
  29. this.menuItem_Show.Index = 1;  
  30. this.menuItem_Show.Text = "显示 ";  
  31. this.menuItem_Show.Click += new System.EventHandler(this.menuItem_Show_Click);  
  32. //  
  33. // menuItem_Aubot  
  34. //  
  35. this.menuItem_Aubot.Index = 2;  
  36. this.menuItem_Aubot.Text = "关于 ";  
  37. this.menuItem_Aubot.Click += new System.EventHandler(this.menuItem_Aubot_Click);  
  38. //  
  39. // menuItem_Exit  
  40. //  
  41. this.menuItem_Exit.Index = 3;  
  42. this.menuItem_Exit.Text = "退出 ";  
  43. this.menuItem_Exit.Click += new System.EventHandler(this.menuItem_Exit_Click);  
  44. protected override void OnClosing(CancelEventArgs e){  
  45. this.ShowInTaskbar = false;  
  46. this.WindowState = FormWindowState.Minimized;  
  47. e.Cancel = true;  
  48. }  
  49. protected override void OnClosing(CancelEventArgs e){  
  50. //this.ShowInTaskbar = false;  
  51. this.WindowState = FormWindowState.Minimized;  
  52. e.Cancel = true;  
  53. }  
  54. private void CloseCtiServer(){  
  55. timer.Enabled = false;  
  56. DJ160API.DisableCard();  
  57. this.NotifyIcon.Visible = false;  
  58. this.Close();  
  59. this.Dispose();  
  60. Application.Exit();  
  61. }  
  62. private void HideCtiServer(){  
  63. this.Hide();  
  64. }  
  65. private void ShowCtiServer(){  
  66. this.Show();  
  67. this.WindowState = FormWindowState.Normal;  
  68. this.Activate();  
  69. }  
  70. private void CtiManiForm_Closing
    (object sender, System.ComponentModel.CancelEventArgs e){  
  71. this.CloseCtiServer();  
  72. }  
  73. private void menuItem_Show_Click(object sender, System.EventArgs e){  
  74. this.ShowCtiServer();  
  75. }  
  76. private void menuItem_Aubot_Click(object sender, System.EventArgs e)this.Show();  
  77. }  
  78. private void menuItem_Exit_Click(object sender, System.EventArgs e){  
  79. this.CloseCtiServer();  
  80. }  
  81. private void menuItem_Hide_Click(object sender, System.EventArgs e){  
  82. this.HideCtiServer();  
  83. }  
  84. private void CtiManiForm_SizeChanged(object sender, System.EventArgs e){  
  85. if(this.WindowState == FormWindowState.Minimized){  
  86. this.HideCtiServer();  
  87. }  
  88. }  
  89. private void notifyIcon1_DoubleClick(object sender,System.EventArgs e){  
  90. this.ShowCtiServer();  

以上介绍C#最小化编写

【编辑推荐】

  1. C#生产者和消费者
  2. 详细介绍C#基础知识
  3. C#正则表达式学习笔记
  4. 简单描述C#存储过程
  5. 浅析C#基于TCP协议
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-12 18:04:44

编写C#多线程

2009-08-06 16:58:40

C#编写ActiveX

2009-08-18 16:31:19

Visual C#编写

2009-08-28 15:05:35

C#编写Calenda

2009-09-11 09:10:30

C#编写游戏

2009-08-14 09:43:59

C#复制构造函数

2021-04-13 16:00:54

加密货币数据货币

2009-07-02 17:59:51

2009-09-24 14:59:38

C#编写COM组件

2009-08-25 15:15:08

C#对象序列化应用

2009-08-25 14:59:39

C# XML序列化应用

2009-09-09 15:54:48

C# XML序列化

2009-09-04 13:55:04

C#文档自动化

2009-09-09 16:53:49

C# XmlSeria序列化

2009-08-17 18:34:50

C# ChangeCo

2009-08-14 17:45:52

C# ArrayLis

2009-08-07 17:25:37

C# SortedLi

2009-08-25 17:59:49

C#入门

2013-05-31 09:26:11

云宕机SLA云应用弹性

2022-06-01 08:00:00

开发成本功能
点赞
收藏

51CTO技术栈公众号