编写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、关闭进程之后,托盘还会显示程序的图标,直到鼠标移动到那个图标后才会消失。那么如何让程序进程被关闭之后图标马上消失呢?
答:呃~好像没有办法....