c#---windows窗体GUI--软件模型3--常见小功能

1.判断显示哪一个panel并验证是否激活

  /// <summary>
        /// 控制显示哪一个panel
        /// </summary>
        /// <param name="panelname"> panel名称</param>
        public void ShowPanel(string panelname)
        {
            foreach (Control c in this.Controls)
            {
                if (c is Panel)
                {
                    Panel p = c as Panel;  //取出Panel
                    //p.BackColor = Color.Red;  // 改变Panel的颜色
                    if (p.Name.Equals(panelname))
                    {
                        //判断是否激活
                        if (ct.IsAction())
                        {
                            p.Visible = true;
                        }
                    }
                    else
                    {
                        p.Visible = false;
                    }

                }
            }
        }
判断显示和激活

 

2.重启软件验证是否激活

        //重启验证 重启程序自身
        public void RestartAppcation() {
            if (MessageBox.Show("请重启验证是否成功", "重新启动", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RtlReading) == DialogResult.OK)
            {
                Application.ExitThread();
                Thread thtmp = new Thread(new ParameterizedThreadStart(run));
                object appName = Application.ExecutablePath;
                Thread.Sleep(1);
                thtmp.Start(appName);
            }
        }
重启验证

 

3.退出程序

 //********关闭程序
        /// <summary>
        /// 1.this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;
//2.Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;
//3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题;
//4.System.Environment.Exit(0);   这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 关闭程序ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Environment.Exit(0);  
        }
退出程序

 

4.托盘提示信息

   // #region 托盘提示
        private void Form1_Load(object sender, EventArgs e)
        {
            //设置鼠标放在托盘图标上面的文字 
            this.notifyIcon1.Text = "工具箱~~~";
            //动画显示
            FormsClass fcs = new FormsClass();
            fcs.StartRightBottem2(this.Width, this.Height, this, this);

        }
        //#region 隐藏任务栏图标、显示托盘图标
        private void Form1_Resize(object sender, EventArgs e)
        {

            //判断是否选择的是最小化按钮 
            if (WindowState == FormWindowState.Minimized)
            {
                //托盘显示图标等于托盘图标对象 
                //注意notifyIcon1是控件的名字而不是对象的名字 
                //notifyIcon1.Icon = ico;

                //this.Hide();
                //隐藏任务栏区图标 
                this.ShowInTaskbar = false;
                //图标显示在托盘区 
                notifyicon.Visible = true;


            }
        }
托盘提示

 

5.托盘右键事件

 1 //*********************************托盘右键
 2         //托盘右键
 3         //http://jingyan.baidu.com/article/624e7459a9fae934e9ba5a64.html
 4         private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
 5         {
 6             System.Environment.Exit(0); 
 7         }
 8         //*********************************托盘右键
 9         private void 显示主界面ToolStripMenuItem_Click(object sender, EventArgs e)
10         {
11             //判断是否已经最小化于托盘 
12             if (WindowState == FormWindowState.Minimized)
13             {
14                 //this.Show();
15                 //还原窗体显示 
16                 WindowState = FormWindowState.Normal;
17                 //激活窗体并给予它焦点 
18                 this.Activate();
19                 //任务栏区显示图标 
20                 this.ShowInTaskbar = true;
21                 //托盘区图标隐藏 
22                 notifyicon.Visible = false;
23             }
24         }
25         //鼠标右键
26         private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
27         {
28             //if (MessageBox.Show("是否确认退出程序?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
29             //{
30             //    // 关闭所有的线程
31             //    this.Dispose();
32             //    this.Close();
33             //}
34 
35             //if (e.Button == MouseButtons.Right)
36             //{
37             //    //MessageBox.Show("youjian");
38             //}
39         }
40         //#region 还原窗体
41         private void notifyIcon1_DoubleClick(object sender, EventArgs e)
42         {
43             //判断是否已经最小化于托盘 
44             if (WindowState == FormWindowState.Minimized)
45             {
46                 //this.Show();
47                 //还原窗体显示 
48                 WindowState = FormWindowState.Normal;             
49                 //激活窗体并给予它焦点 
50                 this.Activate();
51                 //任务栏区显示图标 
52                 this.ShowInTaskbar = true;
53                 //托盘区图标隐藏 
54                 notifyicon.Visible = false;
55             }
56         }
57         //***************************************************托盘end
托盘右键事件

 

posted @ 2017-06-12 14:41  知乎神者  阅读(328)  评论(0编辑  收藏  举报