Developer 0aae370ed4 修复图标加载问题
## 问题解决
- 将app.ico嵌入到项目资源中(EmbeddedResource)
- 更新图标加载方式使用GetManifestResourceStream
- 修复Form1和按钮的图标显示问题

## 技术改进
- 避免了外部文件依赖问题
- 图标编译时嵌入到exe中
- 提高应用部署的便携性

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-20 15:03:33 +08:00

81 lines
2.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Windows.Forms;
namespace WinFormsAppTemplate
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 设置窗体图标 - 使用嵌入资源
try
{
var stream = GetType().Assembly.GetManifestResourceStream("WinFormsAppTemplate.app.ico");
if (stream != null)
{
this.Icon = new Icon(stream);
}
}
catch
{
// 如果图标加载失败,使用默认图标
// this.Icon = SystemIcons.Application;
}
}
private void btnBrowseSource_Click(object sender, EventArgs e)
{
using (FolderBrowserDialog dialog = new FolderBrowserDialog())
{
dialog.Description = "选择文件夹";
if (dialog.ShowDialog() == DialogResult.OK)
{
txtSourcePath.Text = dialog.SelectedPath;
Log($"选择的文件夹: {dialog.SelectedPath}");
}
}
}
private void btnBrowseOutput_Click(object sender, EventArgs e)
{
using (FolderBrowserDialog dialog = new FolderBrowserDialog())
{
dialog.Description = "选择输出文件夹";
if (dialog.ShowDialog() == DialogResult.OK)
{
txtOutputPath.Text = dialog.SelectedPath;
Log($"输出文件夹: {dialog.SelectedPath}");
}
}
}
private void btnClear_Click(object sender, EventArgs e)
{
txtSourcePath.Clear();
txtOutputPath.Clear();
txtLog.Clear();
progressBar.Value = 0;
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnMerge_Click(object sender, EventArgs e)
{
MessageBox.Show("这是一个模板项目\n\n功能\n• 单exe打包\n• 应用图标配置\n• UI按钮图标\n• 环境检测\n\n请在此基础上开发你的具体功能", "模板项目", MessageBoxButtons.OK, MessageBoxIcon.Information);
Log("模板功能演示");
}
private void Log(string msg)
{
txtLog.AppendText($"{msg}\r\n");
txtLog.ScrollToCaret();
Application.DoEvents();
}
}
}