




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用c#制作托盘程序,并禁止多个应用实例运行 托盘程序的制作: 1.把NotifyIcon控件拉一个到窗体上,并设置NotifyIcon的Icon(很重要!否则运行后看不到效果)2.窗体关闭时,将程序最小化到系统托盘上privatevoidForm1_FormClosing(objectsender,FormClosingEventArgse)/MessageBox.Show(程序将最小化到系统托盘区);e.Cancel=true;/取消关闭窗体this.Hide();this.ShowInTaskbar=false;/取消窗体在任务栏的显示this.notifyIcon1.Visible=true;/显示托盘图标3.放一个上下文菜单,添加几个基本项,显示主窗体,退出 ,将这个菜单挂到NotifyIcon上 privatevoidmenuShow_Click(objectsender,EventArgse)this.Show();this.ShowInTaskbar=true;this.notifyIcon1.Visible=false;privatevoidmenuExit_Click(objectsender,EventArgse)this.Dispose(true);Application.ExitThread();4.左键单击托盘图标时,显示主窗体,右击时当然是弹出上面设置的菜单 privatevoidnotifyIcon1_MouseClick(objectsender,MouseEventArgse)if(e.Button=MouseButtons.Left)this.Show();this.ShowInTaskbar=true;this.notifyIcon1.Visible=false;防止这个程序同时运行多个usingSystem;usingSystem.Collections.Generic;usingSystem.Windows.Forms;usingSystem.Threading;namespaceLuceneTeststaticclassProgram/*/应用程序的主入口点。/STAThreadstaticvoidMain()boolbCreatedNew;Mutexm=newMutex(false,Product_Index_Cntvs,outbCreatedNew);if(bCreatedNew)Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newForm1();一 托盘程序的主要步骤及解决方法:为什么说用VisualC#可以十分方便的做一个托盘程序,主要的原因是在.Net框架的软件开发包( .Net FrameWork SDK)中的WinForm组件中定义了一个专门用来开发托盘程序的组件-NotifyIcon组件。下面就来介绍一下这个组件的具体用法和程序设计中的主要的技巧。(1).如何在程序运行后隐藏窗体:我们知道托盘程序运行后是无法看见主窗体的,他只会显示在工具栏上。在用VisualC#设计此类程序的时候,可以用二种方法使得程序运行后不显示主窗体。其中一种方法是重载主窗体中的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(面向对象)语言,在VisualC#中任何东西都可以作为对象来处理。当然对应一个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 ; t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道岔基本轨更换施工方案
- 员工激励咨询流程及方案
- 乌海造价咨询服务方案
- 用户行为预测模型优化-洞察及研究
- 海南光伏安装施工方案
- 手势交互与医疗设备融合-洞察及研究
- 新型肾上腺酮受体激动剂的筛选与鉴定-洞察及研究
- 机器人协同作业模式-洞察及研究
- 蜂窝不锈钢施工方案
- 心理倾听咨询服务方案
- 内部审核检查记录表
- 抖音短视频平台2025年用户画像深度研究报告
- 数据安全国家标准体系(2025 版)
- DB61-T 5125-2025 绿色生态小区建设评价标准
- 人教版(PEP) 六年级上册 Units 1–2综合检测卷月考一 (含答案含听力原文无音频)
- 不良债权管理办法
- 浙江省质量科学研究院招聘(2025年第二批)笔试模拟试题附答案详解
- 研学旅行设计学习情境三研之有方研学设计06课件
- 面向高效节能的空调换热器微通道结构优化设计与实验验证
- 羊水过少的诊断与处理
- 幕墙清洗安全培训
评论
0/150
提交评论