您的位置:首页 > 编程语言 > C#

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

2011-07-12 11:04 302 查看
 
这段时间一直进行cs项目,故整理下开机自动运行、托盘、显示、隐藏。

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

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

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

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

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

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

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

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

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

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

 

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

        private void FormAuto_Load(object sender, EventArgs e)

        {

            //无法在Load事件隐藏窗体

            //Closed事件已经释放

            //唯独Closing事件中可以做到

            try

            {

                //程序运行位置

                string R_startPath = Application.ExecutablePath;

                //对应于HKEY_LOCAL_MACHINE主键

                RegistryKey R_local = Registry.LocalMachine;

                //开机自动运行

                RegistryKey R_run = R_local.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");

                R_run.SetValue("MyAuto", R_startPath);

                R_run.Close();

                R_local.Close();

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

            MessageBox.Show("开机自动运行!");

        }

2)添加Form_Closing,SizeChanged事件

        private void FormAuto_FormClosing(object sender, FormClosingEventArgs e)

        {

            //取消关闭逻辑

            e.Cancel = true;

            this.Hide();

        }

        private void FormAuto_SizeChanged(object sender, EventArgs e)

        {

            //最小化处理

            if (this.WindowState == FormWindowState.Minimized)

            {

                this.Hide();

                //不在任务栏显示窗体

                this.ShowInTaskbar = false;

            }

        }

3)给notifyIconAutoRun添加MouseDoubleClick事件

        private void notifyIconAutoRun_MouseDoubleClick(object sender, MouseEventArgs e)

        {

            //双击显示

            if (e.Button == MouseButtons.Left)

            {

                this.Show();

                this.WindowState = FormWindowState.Normal;

                this.Activate();

            }

        }

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

        private
void exitMenuItem_Click(object sender, EventArgs e)

        {

            if (MessageBox.Show("你确定要退出终端服务程序吗?",
"确认", MessageBoxButtons.OKCancel,

                MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
== DialogResult.OK)

            {

                notifyIconAutoRun.Visible
= false;

                this.Close();

                this.Dispose();

                Application.Exit();

            }       

        }

        private
void showMenuItem_Click(object sender, EventArgs e)

        {

            this.Hide();       

        }

        private
void hideMenuItem_Click(object sender, EventArgs e)

        {

   
4000
         this.Show();

            this.WindowState
= FormWindowState.Normal;

            this.Activate();

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息