在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
系统托盘是个特殊区域,通常在桌面的底部右侧。在那里,用户可以随时访问正在运行中的那些程序。在微软的Windows里,系统托盘常指任务栏的状态区域;在Gnome的桌面时,常指布告栏区域;在KDE桌面时,指系统托盘。在每个系统里,托盘是所有正运行在桌面环境里。当然,如果能够根据程序的运行状态动态修改系统托盘的图片,还能起到为用户提供系统状态的作用。 实现步骤: 1:新建WinForm项目 2:从工具栏中拖拽NotifyIcon控件,然后设置这个控件的icon属性。大运行项目时你会发现在系统的托盘里面出现了你所选择的图标。 NotifyIcon图标的使用说明: 1、 ContextMenu属性: 这个属性需要一个“上下文菜单”(可以从工具栏中拖拽到项目内,然后通过鼠标选择),当图标上单击右键时能够显示这个菜单 2、 Text属性 当鼠标移动到图标上时,系统将要自动显示的信息 3、 Icon属性 在托盘中显示的图标 4、 Visiable属性 决定图标是否可见 一种动态系统托盘的实现过程: 1、 拖拽NotifyIcon、timer、ContextMenu三个控件; 2、 Form1类的自动内容如下: private System.Windows.Forms.NotifyIcon notifyIcon1; private System.Windows.Forms.ContextMenu contextMenu1; private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.MenuItem menuItem3; private System.Windows.Forms.MenuItem menuItem4; private System.Windows.Forms.Timer timer1; private System.ComponentModel.IContainer components; int ico =1;//记录当前的图标序号 3、 #region Windows 窗体设计器生成的代码 ///<summary> ///设计器支持所需的方法 - 不要使用代码编辑器修改 ///此方法的内容。 ///</summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); this.contextMenu1 = new System.Windows.Forms.ContextMenu(); this.menuItem1 = new System.Windows.Forms.MenuItem(); this.menuItem2 = new System.Windows.Forms.MenuItem(); this.menuItem3 = new System.Windows.Forms.MenuItem(); this.menuItem4 = new System.Windows.Forms.MenuItem(); this.timer1 = new System.Windows.Forms.Timer(this.components); // // notifyIcon1 // this.notifyIcon1.ContextMenu = this.contextMenu1; this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); this.notifyIcon1.Text = "动态托盘测试系统"; this.notifyIcon1.Visible = true; // // contextMenu1 // this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuItem1, this.menuItem2, this.menuItem3, this.menuItem4}); this.contextMenu1.Popup += new System.EventHandler(this.contextMenu1_Popup); // // menuItem1 // this.menuItem1.Index = 0; this.menuItem1.Text = "打开"; // // menuItem2 // this.menuItem2.Index = 1; this.menuItem2.Text = "关闭"; // // menuItem3 // this.menuItem3.Index = 2; this.menuItem3.Text = "开始"; this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click); // // menuItem4 // this.menuItem4.Index = 3; this.menuItem4.Text = "停止"; // // timer1 // this.timer1.Interval = 1000; this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(800, 414); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "Form1"; this.ShowInTaskbar = false; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); } #endregion 5、 启动定时器 private void menuItem3_Click(object sender, System.EventArgs e) { this.timer1.Start(); } 6、 动态更换Icon图标 private void timer1_Tick(object sender, System.EventArgs e) { string path; path = @"D:"Src"i2"i1""+ico.ToString()+@".ico"; this.notifyIcon1.Icon = new Icon(path); ico++; if(ico > 5) { ico =1; } } |
请发表评论