编写winform小功能遇到的问题与解决方法

总结编写winform时遇到的小问题与解决方法。

1、label标签不能设置大小

  答:把label标签的autoSize属性改为false即可。

  

  参考:https://zhidao.baidu.com/question/335396798.html

2、如何防止程序多次打开(即:限制程序只能打开一个)

  答:在程序的入口处Program.cs添加如下代码即可。 

static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            bool ret;
            System.Threading.Mutex mutex = new System.Threading.Mutex(true,Application.ProductName,out ret);
            if (ret)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
                mutex.ReleaseMutex();   //释放一次
            }
            else {
                MessageBox.Show("程序已在运行!","提示");
                Application.Exit();
            }

        }
    }

3、设置点击关闭按钮之后程序不关闭,而是最小化到任务栏。

  ① 第一步:重写窗口的关闭事件,设置点击关闭按钮之后,只是把窗口最小化,这样就实现了关闭按钮而不是关闭窗口的功能了。

        //窗口关闭事件
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
            this.WindowState = FormWindowState.Minimized;
            this.Visible = false;
        }

4、最小化窗口之后如何最大化打开窗口?

  ① 第一步:添加一个notifyIcon控件

  

  ② 第二步:给notifyIcon控件添加图标属性,设置一个图标。

  

  ③ 第三步:给notifyIcon控件添加一个双击事件,这样双击之后就能打开正常的窗口了。

 //图标双击事件
        private void notifyIcon1_DoubleClick(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                this.Show();
                this.WindowState = FormWindowState.Normal;
                this.ShowInTaskbar = false;
                this.Visible = true;
            }
        }

5、那么如何关闭这个程序呢?

  答:只能通过任务管理器来关闭了。同时按ctrl+shift+esc打开任务管理器,找到相应的程序,然后结束进程即可。

6、关闭进程之后,托盘还会显示程序的图标,直到鼠标移动到那个图标后才会消失。那么如何让程序进程被关闭之后图标马上消失呢?

  答:呃~好像没有办法....

猜你喜欢

转载自www.cnblogs.com/masha2017/p/11123195.html