如何在C# WinForm应用中实现程序最小化到托盘功能,并设置开机自启动?请提供代码示例。
时间: 2024-11-26 08:10:34 浏览: 48
在C# WinForm应用中,实现程序最小化到托盘功能和设置开机自启动是提高用户体验和程序便利性的常用做法。对于初学者来说,理解如何操作这些功能是很有帮助的,以下是一个实用的示例代码和步骤说明。
参考资源链接:[C# WinForm程序打包教程:菜鸟入门](https://wenku.csdn.net/doc/70icw2wan9?spm=1055.2569.3001.10343)
1. 实现程序最小化到托盘功能:
在WinForm中,首先需要添加一个NotifyIcon控件,然后编写代码实现最小化时隐藏窗体,并在托盘显示图标。用户点击托盘图标时,程序能够重新显示在桌面上。
关键代码如下:
```csharp
private NotifyIcon notifyIcon;
public Form1()
{
InitializeComponent();
notifyIcon = new NotifyIcon();
notifyIcon.Icon = System.Drawing.SystemIcons.Application; // 设置托盘图标
notifyIcon.Visible = true;
notifyIcon.DoubleClick += (sender, e) => ShowForm();
this.WindowState = FormWindowState.Minimized;
}
private void ShowForm()
{
this.WindowState = FormWindowState.Normal;
this.Show();
this.Activate();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
e.Cancel = true;
this.Hide();
ShowForm();
}
}
```
2. 设置开机自启动:
实现开机自启动功能,需要修改系统的注册表。通过编程方式添加一个注册表项,当系统启动时,会自动运行程序。
关键代码如下:
```csharp
private void SetStartup(bool enable)
{
string assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Location;
string startupPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
string shortcutName = Path.GetFileNameWithoutExtension(assemblyLocation) +
参考资源链接:[C# WinForm程序打包教程:菜鸟入门](https://wenku.csdn.net/doc/70icw2wan9?spm=1055.2569.3001.10343)
阅读全文