`
leonardleonard
  • 浏览: 821541 次
社区版块
存档分类
最新评论

C#托盘程序

阅读更多
一. 托盘程序的主要步骤及解决方法:

  为什么说用Visual C#可以十分方便的做一个托盘程序,主要的原因是在.Net框架的软件开发包( .Net FrameWork SDK )中的WinForm组件中定义了一个专门用来开发托盘程序的组件--NotifyIcon组件。下面就来介绍一下这个组件的具体用法和程序设计中的主要的技巧。

  (1).如何在程序运行后隐藏窗体:

  我们知道托盘程序运行后是无法看见主窗体的,他只会显示在工具栏上。在用Visual C#设计此类程序的时候,可以用二种方法使得程序运行后不显示主窗体。其中一种方法是重载主窗体中的OnActivated( )事件,OnActivated( )事件是在窗体激活的时候才触发的。通过重载此事件可以达到隐藏主窗体的目的。具体程序代码如下:

protected override void OnActivated ( EventArgs e )
{
this.Hide ( ) ;
}

  另外一种方法是在初始化主窗体的时候完成的,通过设定主窗体的属性来达到不显示的目的。具体的程序代码如下:

this.MaximizeBox = false ;
this.MinimizeBox = false ;
this.WindowState = System.Windows.Forms.FormWindowState.Minimized ;

  在本文介绍的程序中,使用了第二种方法。
(2).如何为托盘程序设定显示图标:

  在NotifyIcon组件中有一个属性icon就是来设定托盘图标的,由于Visual C#是一个完全的OOP (面向对象)语言,在Visual C#中任何东西都可以作为对象来处理。当然对应一个icon来说,也可以用对象的方法来处理他。我们通过下列语句来得到一个icon对象:

private Icon mNetTrayIcon = new Icon ( "Tray.ico" ) ;

  请注意:在编译好的程序中,必须要在同一个目录中有一个Tray.ico图标文件,否则程序运行时候会出错的。

  通过下列语句把此icon对象付给NotifyIcon组件中的icon属性,此时如果程序正确编译,则此icon就会显示在工具栏中了。

TrayIcon.Icon = mNetTrayIcon ;

  (3).设定当鼠标停留在托盘程序上显示的文本内容:

  NotifyIcon组件中有一个属性Text。设定这个属性的内容,就是鼠标停留在托盘图标上显示的内容了。具体语句如下:

TrayIcon.Text = "用Visual C#做托盘程序" + "\n" + "作者:马金虎于2001.12.08" ;

  (4).如何在托盘程序加入菜单:

  在NotifyIcon组件中有一个对象叫ContextMenu,在托盘程序中显示出的菜单就是通过设定此对象来实现的。以下的程序代码是为托盘程序加入菜单项:

notifyiconMnu = new ContextMenu ( mnuItms ) ;
TrayIcon.ContextMenu = notifyiconMnu ;
//为托盘程序设定菜单

  (5).如何设定ContextMenu对象的内容:

  ContextMenu对象是托盘程序的菜单的结构,所以如何设定此对象,在本程序中是比较关键的。在程序中,是通过定义一个菜单项数组,并对这个数组设定不同的值(这当中包括菜单的一些属性和事件),然后把这个数组同时赋值给ContextMenu对象,来实现对ContextMenu对象的设置过程的。以下是程序中具体代码:

//定义一个MenuItem数组,并把此数组同时赋值给ContextMenu对象
MenuItem [ ] mnuItms = new MenuItem [ 3 ] ;
mnuItms [ 0 ] = new MenuItem ( ) ;
mnuItms [ 0 ] .Text = "用Visual C#做托盘程序!" ;
mnuItms [ 0 ] .Click += new System.EventHandler ( this.showmessage ) ;

mnuItms [ 1 ] = new MenuItem ( "-" ) ;
mnuItms [ 2 ] = new MenuItem ( ) ;
mnuItms [ 2 ] .Text = "退出系统" ;
mnuItms [ 2 ] .Click += new System.EventHandler ( this.ExitSelect ) ;
mnuItms [ 2 ] .DefaultItem = true ;

notifyiconMnu = new ContextMenu ( mnuItms ) ;
TrayIcon.ContextMenu = notifyiconMnu ;
//为托盘程序加入设定好的ContextMenu对象

  当成功加入了ContextMenu对象后,在程序编译完成运行时,当鼠标右键点击托盘图标,程序会自动弹出ContextMenu对象封装好的菜单。

  二. 本文介绍的程序源代码( Tray.cs ):
Tray.cs源程序代码:

using System ;
using System.Drawing ;
using System.Collections ;
using System.ComponentModel ;
using System.Windows.Forms ;
using System.Data ;
//导入在程序中使用到的名称空间
public class Tray : Form
{
 private System.ComponentModel.Container components = null ;
 private Icon mNetTrayIcon = new Icon ( "Tray.ico" ) ;
 private NotifyIcon TrayIcon ;
 private ContextMenu notifyiconMnu ;

 public Tray()
 {
  //初始化窗体中使用到的组件
  InitializeComponent ( ) ;
  //初始化托盘程序的各个要素
  Initializenotifyicon ( ) ;
 }

private void Initializenotifyicon ( )
{
 //设定托盘程序的各个属性
 TrayIcon = new NotifyIcon ( ) ;
 TrayIcon.Icon = mNetTrayIcon ;
 TrayIcon.Text = "用Visual C#做托盘程序" + "\n" + "作者:马金虎于2001.12.08" ;
 TrayIcon.Visible = true ;
 TrayIcon.Click += new System.EventHandler ( this.click ) ;

 //定义一个MenuItem数组,并把此数组同时赋值给ContextMenu对象
 MenuItem [ ] mnuItms = new MenuItem [ 3 ] ;
 mnuItms [ 0 ] = new MenuItem ( ) ;
 mnuItms [ 0 ] .Text = "用Visual C#做托盘程序!" ;
 mnuItms [ 0 ] .Click += new System.EventHandler ( this.showmessage ) ;

 mnuItms [ 1 ] = new MenuItem ( "-" ) ;

 mnuItms [ 2 ] = new MenuItem ( ) ;
 mnuItms [ 2 ] .Text = "退出系统" ;
 mnuItms [ 2 ] .Click += new System.EventHandler ( this.ExitSelect ) ;
 mnuItms [ 2 ] .DefaultItem = true ;

 notifyiconMnu = new ContextMenu ( mnuItms ) ;
 TrayIcon.ContextMenu = notifyiconMnu ;
 //为托盘程序加入设定好的ContextMenu对象
}
public void click ( object sender , System.EventArgs e )
{
 MessageBox.Show ( "Visual C#编写托盘程序中的事件响应" ) ;
}

public void showmessage ( object sender , System.EventArgs e )
{
 MessageBox.Show ( "你点击了菜单的第一个选项" ) ;
}

public void ExitSelect ( object sender , System.EventArgs e )
{
 //隐藏托盘程序中的图标
 TrayIcon.Visible = false ;
 //关闭系统
 this.Close ( ) ;
}
//清除程序中使用过的资源
public override void Dispose ( )
{
 base.Dispose ( ) ;
 if ( components != null )
  components.Dispose ( ) ;
}

private void InitializeComponent ( )
{
 this.SuspendLayout ( ) ;
 this.AutoScaleBaseSize = new System.Drawing.Size ( 5 , 13 ) ;
 this.ClientSize = new System.Drawing.Size ( 320 , 56 ) ;
 this.ControlBox = false ;
 this.MaximizeBox = false ;
 this.MinimizeBox = false ;
 this.WindowState = System.Windows.Forms.FormWindowState.Minimized ;

 this.Name = "tray" ;
 this.ShowInTaskbar = false ;
 this.Text = "用Visual C#做托盘程序!" ;
 this.ResumeLayout ( false ) ;

}
static void Main ( )
{
 Application.Run ( new Tray ( ) ) ;
}
}

  三. 总结:

  通过以上介绍,可以看出用Visual C#做一个托盘程序并不是一件复杂的事情,而是一件比较轻松的事情。同样也可使我们明白,Visual C#虽然是一种功能强大的程序设计语言,但它只是一个打开.Net FrameWork SDK的钥匙,正是这个内容丰富的软件包,才使得各个.Net程序开发语言有了施展自身功能更广阔的舞台。 


 
分享到:
评论

相关推荐

    c# 托盘程序 开源

    开源,意味着该C#托盘程序的源代码是公开的,允许开发者查看、学习、修改并分发代码。开源软件促进了技术的共享和进步,使得全球的开发者社区可以共同参与改进和扩展软件功能。 创建一个C#的托盘程序涉及以下几个...

    C#托盘程序托盘程序托盘程序

    根据提供的标题、描述、标签及部分内容,我们可以提炼出与C#托盘程序相关的知识点: ### C#中的托盘程序(NotifyIcon) #### 一、托盘程序简介 托盘程序通常指的是那些在Windows任务栏系统托盘区域显示图标的程序...

    C# 托盘程序 托盘程序

    本文将深入探讨如何使用C#来创建一个简单的托盘程序。 首先,我们需要了解C#中的System.Windows.Forms命名空间,它提供了创建图形用户界面(GUI)所需的各种控件和类。在这个命名空间中,`NotifyIcon`类是实现托盘...

    C#托盘程序的实现

    通过以上步骤,你可以创建一个基本的C#托盘程序。不过,根据实际需求,可能还需要扩展功能,如添加定时器、监听系统事件、提供状态指示等。总的来说,C#和.NET Framework提供了强大的支持,使得开发这样的程序变得...

    c#托盘程序(后台进程)时时扫描

    标题提到的"C#托盘程序(后台进程)时时扫描"是指使用C#编写的一种应用程序,它能够在系统托盘区域运行,并且持续进行某种扫描任务。这种程序通常以后台进程的形式存在,不会在用户的桌面上显示窗口,但仍然可以执行...

    C#做的托盘程序,源代码

    总之,这个C#托盘程序示例提供了丰富的学习素材,对于想要涉足这一领域的开发者来说,它是一个理想的起点。通过阅读和理解源代码,你可以掌握如何在Windows环境下构建功能完备且用户友好的托盘应用程序。

    c#托盘程序实例

    总结起来,C#托盘程序实例是一个展示如何使用`System.Windows.Forms.NotifyIcon`类构建托盘应用程序的示例。通过学习和分析代码,你可以了解到如何创建托盘图标、设置提示文本、处理用户交互事件以及添加上下文菜单...

    C# 托盘程序

    以下是对C#托盘程序的详细解释: 1. **创建托盘图标** - 使用`System.Windows.Forms.NotifyIcon`类来创建托盘图标。首先,需要实例化这个类,并设置其`Icon`属性为应用程序图标,`Visible`属性为`true`来显示图标...

    Visaul C#托盘程序制作心得

    通过以上步骤,我们可以创建一个完整的Visual C#托盘程序,它可以隐藏主窗体并在系统托盘区域提供功能入口,同时支持右键和左键的菜单操作。这样的程序通常用于后台运行的应用,如聊天服务器、系统监控工具等,它们...

    C#做托盘程序(NotifyIcon控件)

    完成以上步骤后,你的C#托盘程序就可以正常工作了,用户可以通过托盘图标进行交互。这种设计方式使得C#成为开发托盘程序的理想语言,因为它的.NET框架提供了丰富的控件和简洁的API,使得开发过程更为高效和直观。

    c#托盘程序,适合初学者,高手就不要看了

    本文将深入探讨C#中的托盘程序,这是Windows桌面应用中一个非常实用的功能,尤其对于那些需要在后台运行或者提供系统托盘快捷操作的应用来说。 托盘程序,也称为系统托盘图标或通知区域程序,是指在Windows操作系统...

    c# 托盘示例程序文档

    在C#编程中,托盘程序(Tray Icon Application)是一种常见的软件设计模式...通过阅读提供的"托盘程序.htm"文档和参考"托盘程序.files"中的示例代码,你可以深入理解并实践这些知识点,进一步提升C#托盘程序开发能力。

    C#日志托盘提示程序+源代码

    总的来说,这个项目提供了一个学习C#系统托盘程序和日志处理实践的好机会,不仅涉及到基础的编程技术,还有实际开发中的问题处理和资源管理。通过分析和理解源代码,开发者能够增强自己的C#编程能力,特别是对于系统...

    C# 托盘事例小程序

    在C#编程中,托盘程序(Tray Icon Application)是指一种特殊...通过学习和理解这个C#托盘程序示例,开发者可以创建自己的后台应用,这些应用可以在系统托盘中安静地运行,为用户提供便利的功能,同时保持桌面整洁。

    C#程序托盘化,可右键

    至此,一个简单的C#托盘程序已经构建完成,它能够在系统托盘区显示图标,用户可以通过右键菜单进行交互。在实际项目中,可以根据需求添加更多的菜单项和功能。 在提供的文件列表中,`NotifyIconSl.sln`是Visual ...

    C# 开发系统托盘程序

    C# 开发系统托盘程序 C#开发系统托盘程序代码,适用于windows系统。

    C#托盘小图标程序

    "C#托盘小图标程序"指的是利用C#实现的一种系统托盘应用程序,它可以在任务栏通知区域(通常称为“系统托盘”或“系统 tray”)显示一个小图标,并能模拟如QQ等即时通讯软件的图标闪烁效果,提示用户有未读消息或新...

    利用c#制作托盘 c#托盘制作

    【C#制作托盘程序详解】 在C#编程中,创建一个托盘程序可以让应用程序在不占用屏幕空间的情况下持续运行,通常最小化到系统托盘区域。本文将详细讲解如何利用C#制作托盘程序,并介绍如何防止多个应用实例同时运行。...

    一个托盘程序(发邮件)

    标题中的“一个托盘程序(发邮件)”指的是一个运行在系统托盘区域的应用程序,它的主要功能是发送电子邮件。这种程序通常设计成最小化到托盘,以便在不使用时节省桌面空间,同时保持可访问性。在描述中提到的“附有...

Global site tag (gtag.js) - Google Analytics