ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# winForm程序开机启动和托盘显示

2020-08-28 02:03:50  阅读:248  来源: 互联网

标签:控件 sender C# object EventArgs testNotifyIcon 开机 CodeHighlighter winForm


这段时间一直在学习C#,看了书然后又在网上看了N多大神些的blog,然后自己学着做了一个像QQ托盘图标那样的小功能的Demo:

        (1)、在窗口上点击关闭按钮或者最小化时将托盘显示;

        (2)、双击托盘图标显示窗口;

        (3)、右键点击托盘图标提供三个菜单选项,“退出”、“隐藏”、“显示”;

        (4)、程序可以设置开机启动,隐藏任务栏显示。就这四个小功能。

1、建一个WinForm程序—TestIconForm,将其属性ShowInTaskbar改为false,这样程序将不会在任务栏中显示;将MaximizeBox属性设置为false,屏蔽掉最大化按钮;把StartPosition属性改为CerternScreen,这样程序运行后,窗口将会居中显示。

2、在工具栏中的公共控件里,拖入NotifyIcon控件—testNotifyIcon,这个是程序运行任务栏右侧通知区域图标显示控件。

3、在工具栏中的菜单和工具栏里,拖入ContextMenuStrip—testContextMenuStrip,这个控件是右击时关联菜单。

4、右键testNotifyIcon选择属性,将其属性ContextMenuStrip改加为testContextMenuStrip,这个时候1和2两个步骤的两个控件就关联了,用于完成上面(3)功能。

5、右键testContextMenuStrip选择属性,进入Items,然后点击“添加”,这里添加三个菜单选项:exitMenuItem、hideMenuItem、showMenuItem,同时分别将其Text属性改为:退出、隐藏和显示。

准备工作就这些,下面是大致代码:

 

1)、双击TestIconForm,即添加Load事件然后

privatevoid Form1_Load(object sender, EventArgs e)
{
testNotifyIcon.Icon
=new Icon("e:\\MyPicture\\testIcon.ico");
//取得程序路径
string startup = Application.ExecutablePath;

//class Micosoft.Win32.RegistryKey. 表示Window注册表中项级节点,此类是注册表装
RegistryKey rKey = Registry.LocalMachine;
RegistryKey autoRun = rKey.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
try
{
autoRun.SetValue("BookServer", startup);
rKey.Close();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}

添加Form_Closing,SizeChanged事件

private void Form1_FormClosing(object sender, FormClosingEventArgs e) //关闭按钮事件
        {
            e.Cancel = true;
            this.Hide();
        }

        private void Form1_SizeChanged(object sender, EventArgs e) //最小化事件按钮
        {
            this.Hide();
        }

 

2)、给testNotifyIcon添加MouseDoubleClick事件


privatevoid testNotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e) // 左键双击,显示
{
if (e.Button == MouseButtons.Left)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Activate();
}
}

 3)、进入TestIconForm单击testContextMenuStrip,然后可以看到“退出”、“隐藏”、“显示”,分别双击,添加相应的事件


privatevoid exitMenuItem_Click(object sender, EventArgs e)
{
if (MessageBox.Show("你确定要退出终端服务程序吗?", "确认", MessageBoxButtons.OKCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
testNotifyIcon.Visible =false;
this.Close();
this.Dispose();
Application.Exit();
}
}

privatevoid showMenuItem_Click(object sender, EventArgs e)
{
this.Hide();
}

privatevoid hideMenuItem_Click(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
this.Activate();
}

 

标签:控件,sender,C#,object,EventArgs,testNotifyIcon,开机,CodeHighlighter,winForm
来源: https://www.cnblogs.com/guohu/p/13575044.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有