## 问题解决 - 将app.ico嵌入到项目资源中(EmbeddedResource) - 更新图标加载方式使用GetManifestResourceStream - 修复Form1和按钮的图标显示问题 ## 技术改进 - 避免了外部文件依赖问题 - 图标编译时嵌入到exe中 - 提高应用部署的便携性 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
81 lines
2.5 KiB
C#
81 lines
2.5 KiB
C#
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();
|
||
}
|
||
}
|
||
}
|