`
pcajax
  • 浏览: 2162555 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C#实现动态系统托盘图标

阅读更多

Visual C#是微软公司推出的下一代程序开发语言,是微软.Net框架中的的一个重要组成部分。微软的.Net平台堪称为新一代的互联网平台。对于技术开发人员来说,.Net平台的两大特性是非常卓越的,首先是其所提供的公共语言运行时,也就是公用语言运行平台,另一方面就是其庞大而全面的统一编程类。 Visual C#就是通过调用这些类、对象来实现许多比较强大的功能。
 
  本文通过向大家介绍一个.Net平台上用C#写的可以停放在任务栏上的图标程序(类似于Flashget、OICQ那种系统托盘图标)来和大家一起体验一下用C#编程的乐趣。
   
  一、概述:
 
  我这里所指的图标程序是类似于在Windows中经常接触的停放在任务栏上,在后台运行的病毒监视、媒体播放等程序。它们一般都具有单击显示或隐藏主界面,击右键弹出菜单,当鼠标停在图标上时显示提示信息的功能。

  程序主要用到了一下几个类:
 
  System.Windows.Fomrs.NotifyIcon类
  System.Windows.Forms.ContextMenu类
  System.Windows.Forms.MenuItem类
  System.Windows.Forms.Label类
  System.Windows.Forms.Timer类

  二、程序设计和运行的环境:

  (1)微软公司视窗2000服务器版或视窗XP版

  (2).Net FrameWrok SDK Beta 2版

  三、具体实现步骤:

  (1).在Visual Studio下新建一个C#的工程,不妨命名为AnimateSystemTray。图示如下:

  (2).现在我们来设计程序的主界面:
 
  先将窗体的Text属性设置为"动画系统图标示例",MaximiseBox、MinimiseBox、ShowInTaskbar属性均设置为False。
 
  再往窗体上添加Label控件、NotifyIcon控件、ContextMenu控件、Timer控件各一个。
 
  将Label控件的Text属性设置为"请右击系统托盘图标";将NotifyIcon控件的Icon属性设置为一个图标文件:,Text属性设置为"这是个示例程序!",ContextMenu属性设置为"contextMenu1";接下来开始编辑ContextMenu控件,图示如下:

  最后还要在导入两个图标 (Icon1.ico), (Icon2.ico)文件到该项目。
  (3).现在我们开始编写代码部分:
 
  首先在我们的类中添加以下数据成员:
 
  private Icon m_Icon1;
  private Icon m_Icon2;
  private bool m_bFlag;
  private bool m_bShowWnd;
 
  修改Form1()函数为:
 
  public Form1()
  {
  //
  // Required for Windows Form Designer support
  //
  InitializeComponent();
  //
  // TODO: Add any constructor code after InitializeComponent call
  //
  m_bFlag=true;
  m_bShowWnd=true;
 
  try
  {
  m_Icon1 = new Icon("Icon1.ico");//导入图标文件
  m_Icon2 = new Icon("Icon2.ico");
  }
  catch ( Exception e )
  {
  MessageBox.Show("Error "  e.Message,"Animate Tray - Error");
  menuItem2.Enabled = false;
  menuItem3.Enabled = false;
  }
  }
 
  添加menuItem1、menuItem2、menuItem3、m_trayIcon的Click事件,消息处理函数如下:
  private void menuItem1_Click(object sender, System.EventArgs e)
  {
  timer1.Start();//打开计时器
  }
 
  private void menuItem2_Click(object sender, System.EventArgs e)
  {
  timer1.Stop();//停止计时器
  }
 
  private void menuItem3_Click(object sender, System.EventArgs e)
  {
  Application.Exit();//退出应用程序
  }
 
  private void m_trayIcon_Click(object sender, System.EventArgs e)
  {
  if(m_bShowWnd == true)//隐藏主界面
  {
  this.Visible = false;
  m_bShowWnd = false;
  }
  else//显示主界面
  {
  this.Visible = true;
  m_bShowWnd = true;
  }
  }
 
 
 
  最后还要添加timer1的Tick()函数:
 
  private void timer1_Tick(object sender, System.EventArgs e)
  {
  if ( m_Icon1 != null &;&; m_Icon2 != null ) //如果两个图标文件都被正确载入
  {
  //只要timer1被启动,则在两个图标之间不断进行选择变换,实现动画效果
  if ( m_bFlag == true )
  {
  m_trayIcon.Icon = m_Icon2;
  m_bFlag = false;
  }
  else
  {
  m_trayIcon.Icon = m_Icon1;
  m_bFlag = true;
  }
  }
  }
 
  好了,按Ctrl+F5试试效果吧!
 
  运行程序,将显示一个主窗口,此时还可以看到在任务栏上面多了一个图标。当鼠标移到其上停留一下时,将显示一个简单的提示信息,点击该图标则将隐藏主窗口,单击右键,出来一个菜单,选"动画图标开始"和"动画图标结束"可以控制图标状态。

分享到:
评论

相关推荐

    C#下实现动态系统托盘图标

    其中,动态系统托盘图标是很多应用中不可或缺的一部分,它可以在任务栏通知区域显示,提供快速访问和隐藏主界面的功能。本篇文章将深入探讨如何在C#中实现这一特性。 首先,我们要了解系统托盘图标的组成。一个基本...

    C#下实现动态系统托盘图标 .doc

    本文主要介绍了如何在C#环境下创建一个动态的系统托盘图标程序,类似于Flashget和OICQ那样在任务栏右下角显示的小图标。这个程序可以在后台运行,并且可以通过单击或右键菜单进行交互。以下是对关键知识点的详细解释...

    c#系统托盘图标刷新类

    总结一下,`c#系统托盘图标刷新类`涉及到的关键知识点有: 1. 使用`System.Windows.Forms.NotifyIcon`类创建和管理系统托盘图标。 2. 图标的初始化、刷新和事件处理。 3. 跨平台兼容性,确保在不同版本的Windows上...

    C#实现动态托盘图标源码

    本文将深入探讨如何使用C#来实现动态托盘图标的功能,并提供源码分析。 动态托盘图标是Windows操作系统任务栏右下角通知区域中的图标,它们通常用于后台运行的应用程序,以便在不占用主窗口的情况下提供交互和通知...

    \C#下实现动态系统托盘图标

    在C#中实现动态系统托盘图标是Windows桌面应用开发中的常见需求,这通常涉及到创建一个在任务栏通知区域(系统托盘)显示的小图标,以便在后台运行并提供用户交互。以下是如何使用C#来实现这一功能的详细步骤和涉及...

    C#显示动态托盘图标示例

    C#显示动态托盘图标示例,若积分不够,请到http://www.codefans.net/soft/22803.shtml...学习了一段C#编程,今天抽空写一个新手可参考的小程序,动态显示窗口任务栏右下角的托盘图标,可向指定IP发送消息,窗口可闪动。

    C# 解决系统托盘死亡图标

    5. **使用系统API**:在C#中,可以利用P/Invoke技术调用Windows API函数,如`Shell_NotifyIcon`来直接操作系统托盘图标,实现更精细的控制。 6. **错误处理**:对可能出现的异常进行捕获和处理,防止因异常导致的...

    动态闪烁的C#系统托盘图标

    "动态闪烁的C#系统托盘图标"是指能够根据程序状态或事件而变化或闪烁的这种图标功能。以下将详细介绍如何在C#中实现动态闪烁的系统托盘图标。 首先,我们需要导入`System.Windows.Forms`命名空间,因为它包含了创建...

    C#获取系统托盘信息

    本文将深入探讨如何利用C#来获取系统托盘区域(也称为通知区域)的信息,包括显示在托盘区域中的图标以及它们所关联的进程ID。 系统托盘区域是Windows操作系统桌面右下角的一个区域,通常包含各种程序的小图标,如...

    动态系统托盘图标c# 讲义

    以下是对动态系统托盘图标在C#中的实现进行详细讲解: 一、System Tray 图标的基本概念 系统托盘(System Tray),也称为通知区域,位于Windows桌面右下角的任务栏上,通常包含时钟、网络连接等图标。通过使用...

    C#的刷新托盘区域图标的代码及程序集

    当用户与托盘图标交互时,如单击、双击等,Windows会发送消息到应用程序。我们需要在窗体的`WndProc`方法中处理这些消息。 以上就是刷新托盘区域图标的C#实现过程。在提供的压缩包文件`HWin32`中,可能包含了一些...

    C#一步刷新系统托盘图标

    在自己的程序中解决其他程序非法关闭后,托盘残留的死亡图标。一句话搞定:引入该dll文件RefreshSystemTray.RefreshSysTray.SysTray.Refresh();//消除死亡托盘图标

    制作一个系统托盘图标的资源

    - 可以为系统托盘图标添加右键菜单,通过`ContextMenuStrip`类在C#中实现,提供各种功能选项。 - 使用`BalloonTip`功能,可以在图标上显示临时提示信息,向用户传达应用程序的状态或提醒。 4. 处理隐藏和显示: ...

    C#托盘小图标程序

    总的来说,"C#托盘小图标程序"是一种利用C#语言和Windows Forms库开发的应用,它可以实现系统托盘图标的功能,包括显示、隐藏、闪烁等,常用于后台运行的工具软件或提醒类应用。通过学习和理解这些知识点,开发者...

    C#实现用托盘控制windows服务

    在C#中,我们可以使用`System.Windows.Forms.NotifyIcon`类来创建系统托盘图标。创建一个NotifyIcon实例,设置图标和提示文本,然后将其添加到系统托盘中。用户可以通过点击托盘图标来触发相应的事件,例如显示菜单...

    C#隐藏窗体,托盘图标一例

    在C#编程中,有时我们希望程序在运行时并不显示主窗口,而是通过系统托盘图标来实现应用程序的控制和交互。这样的设计可以使得界面更加简洁,用户可以在任务栏的系统托盘区域找到应用程序,而不会被频繁弹出的窗口...

    C#实现闪动托盘图标示例

    在C#编程环境中,开发Windows桌面应用程序时,有时需要实现一种功能,即当程序有重要通知或事件发生时,能够使任务栏上的托盘图标闪烁,以吸引用户的注意力。这个功能常见于各种即时通讯软件,如QQ和邮件客户端,如...

    程序缩小时缩为系统托盘(system tray)的小图标.rar_托盘_系统 托盘_系统托盘_系统托盘 图标

    2. **处理消息循环**:系统托盘图标需要能够响应用户的操作,如单击、双击或右键菜单。为此,程序需要有一个消息循环,用于接收并处理来自操作系统的事件,例如WM_NOTIFY、WM_USER等。 3. **添加托盘图标到任务栏**...

    C# 在Windows托盘处旋转图标 C#实例 状态栏 ico图标特效 旋转 Notify

    在Windows应用程序开发中,C#语言提供了丰富的功能来创建用户友好的界面,其中包括在系统托盘(状态栏)上操作图标。"C#在Windows托盘处旋转图标"这一技术,是利用C#的.NET Framework库来实现的一种视觉效果,主要...

Global site tag (gtag.js) - Google Analytics