修复部分编译警告

This commit is contained in:
zsyg
2025-06-19 20:58:49 +08:00
committed by GitHub
parent d85d2d67ea
commit f2a2f48020
2 changed files with 185 additions and 56 deletions

View File

@@ -23,9 +23,14 @@ namespace AppStore
public AppCard() public AppCard()
{ {
iconBox = new PictureBox(); // 确保关键对象不为null
nameLabel = new Label(); iconBox = new PictureBox() { SizeMode = PictureBoxSizeMode.StretchImage };
downloadBtn = new Button(); nameLabel = new Label() { Text = string.Empty };
downloadBtn = new Button() { Text = "下载" };
// 确保DownloadManager已初始化
var _ = DownloadManager.Instance;
InitializeComponent(); InitializeComponent();
} }
@@ -241,17 +246,48 @@ namespace AppStore
} }
} }
// 应用计算好的路径 // 应用计算好的路径 - 更严格的null检查和异常处理
if (path != null) try
{
var safePath = path ?? CalculatePathFallback(Width, Height, 10);
// 更严格的null检查包括路径和控件状态
if (safePath != null &&
safePath.PointCount > 0 &&
this.IsHandleCreated &&
!this.IsDisposed)
{ {
this.Invoke((MethodInvoker)delegate { this.Invoke((MethodInvoker)delegate {
this.Region = new Region(path); // 设置控件区域 try
this.Refresh(); // 重绘控件 {
// 委托内部再次验证safePath
if (safePath != null && safePath.PointCount > 0)
{
var validPath = safePath; // 确保非null
using (var region = new Region(validPath))
{
this.Region = region;
this.Refresh();
}
}
}
catch (Exception ex)
{
Debug.WriteLine($"创建Region失败: {ex.Message}");
this.Region = null;
this.Refresh();
}
}); });
} }
} }
catch (Exception ex)
{
Debug.WriteLine($"初始化卡片路径失败: {ex.Message}");
}
}
private System.Drawing.Drawing2D.GraphicsPath CalculatePathFallback(int width, int height, int radius) private System.Drawing.Drawing2D.GraphicsPath CalculatePathFallback(int width, int height, int radius)
{
try
{ {
var path = new System.Drawing.Drawing2D.GraphicsPath(); var path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddArc(0, 0, radius * 2, radius * 2, 180, 90); path.AddArc(0, 0, radius * 2, radius * 2, 180, 90);
@@ -261,6 +297,14 @@ namespace AppStore
path.CloseFigure(); path.CloseFigure();
return path; return path;
} }
catch
{
// 绝对回退方案 - 返回最小有效路径
var path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddRectangle(new Rectangle(0, 0, width, height));
return path;
}
}
public void UpdateDisplay() public void UpdateDisplay()
{ {
@@ -269,20 +313,40 @@ namespace AppStore
} }
private void DownloadBtn_Click(object sender, EventArgs e) private void DownloadBtn_Click(object sender, EventArgs e)
{
if (sender == null || e == null) return;
if (!string.IsNullOrEmpty(DownloadUrl))
{ {
try try
{ {
string fileName = $"{AppName.Replace(" ", "_")}.exe"; // 更严格的null检查
// 更严格的null检查包括DownloadManager.Instance和其方法
// 全面的null和状态检查
if (sender == null || e == null ||
string.IsNullOrWhiteSpace(DownloadUrl) ||
string.IsNullOrWhiteSpace(AppName) ||
!this.IsHandleCreated ||
this.IsDisposed ||
DownloadManager.Instance == null ||
DownloadManager.Instance.DownloadItems == null ||
DownloadManager.Instance.StartDownload == null)
{
return;
}
string safeAppName = AppName ?? "未知应用";
string fileName = $"{safeAppName.Replace(" ", "_")}.exe";
DownloadManager.Instance.StartDownload(fileName, DownloadUrl); DownloadManager.Instance.StartDownload(fileName, DownloadUrl);
MessageBox.Show($"已开始下载: {AppName}", "下载中", MessageBoxButtons.OK, MessageBoxIcon.Information);
string message = $"已开始下载: {safeAppName}";
this.Invoke((MethodInvoker)delegate {
MessageBox.Show(this, message, "下载中", MessageBoxButtons.OK, MessageBoxIcon.Information);
});
} }
catch (Exception ex) catch (Exception ex)
{ {
MessageBox.Show($"下载失败: {ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); Debug.WriteLine($"下载按钮点击处理失败: {ex.Message}");
} this.Invoke((MethodInvoker)delegate {
MessageBox.Show(this, "下载处理发生错误", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
});
} }
} }
} }

View File

@@ -201,11 +201,86 @@ namespace AppStore
// 添加所有应用卡片 // 添加所有应用卡片
flowPanel.Controls.Add(CreateAppCard(
"XDM",
"https://github.com/subhra74/xdm/releases/download/7.2.11/xdm-setup.msi",
"img/png/XDM.png"));
flowPanel.Controls.Add(CreateAppCard(
"FDM",
"https://files2.freedownloadmanager.org/6/latest/fdm_x64_setup.exe",
"img/png/FDM.png"));
flowPanel.Controls.Add(CreateAppCard(
"ABDM",
"https://ghproxy.net/https://github.com/amir1376/ab-download-manager/releases/download/v1.6.4/ABDownloadManager_1.6.4_windows_x64.exe",
"img/png/ABDM.png"));
flowPanel.Controls.Add(CreateAppCard( flowPanel.Controls.Add(CreateAppCard(
"python3.8", "python3.8",
"https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exe", "https://www.python.org/ftp/python/3.8.0/python-3.8.0-amd64.exe",
"img/png/python.png")); "img/png/python.png"));
flowPanel.Controls.Add(CreateAppCard(
"Oracle Java8",
"https://sdlc-esd.oracle.com/ESD6/JSCDL/jdk/8u451-b10/8a1589aa0fe24566b4337beee47c2d29/jre-8u451-windows-x64.exe?GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/8u451-b10/8a1589aa0fe24566b4337beee47c2d29/jre-8u451-windows-x64.exe&BHost=javadl.sun.com&File=jre-8u451-windows-x64.exe&AuthParam=1750252610_4d0f61835e3392b8f0158398fd5ebd90&ext=.exe",
"img/png/java.png"));
flowPanel.Controls.Add(CreateAppCard(
"Rust",
"https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe",
"img/png/rust.png"));
flowPanel.Controls.Add(CreateAppCard(
"Ruby",
"https://mirror.sjtu.edu.cn/github-release/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.4-2/rubyinstaller-devkit-3.4.4-2-x64.exe",
"img/png/ruby.png"));
flowPanel.Controls.Add(CreateAppCard(
"D",
"https://downloads.dlang.org/releases/2.x/2.111.0/dmd-2.111.0.exe",
"img/jpg/D.jpg"));
flowPanel.Controls.Add(CreateAppCard(
"Go",
"https://golang.google.cn/dl/go1.24.4.windows-amd64.msi",
"img/png/Go.png"));
flowPanel.Controls.Add(CreateAppCard(
"Node.js",
"https://nodejs.org/dist/v22.16.0/node-v22.16.0-x64.msi",
"img/png/nodejs.png"));
flowPanel.Controls.Add(CreateAppCard(
"mingw-64",
"https://ghproxy.net/https://github.com/niXman/mingw-builds-binaries/releases/download/15.1.0-rt_v12-rev0/x86_64-15.1.0-release-posix-seh-ucrt-rt_v12-rev0.7z",
"img/png/mingw-64.png"));
flowPanel.Controls.Add(CreateAppCard(
"Msys2",
"https://github.com/msys2/msys2-installer/releases/download/2025-02-21/msys2-x86_64-20250221.exe",
"img/png/MSYS2.png"));
flowPanel.Controls.Add(CreateAppCard(
".NET SDK 8.0",
"https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-8.0.411-windows-x64-installer",
"img/png/.NET.png"));
flowPanel.Controls.Add(CreateAppCard(
"ASP.NET Core 运行时 8.0",
"https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-aspnetcore-8.0.17-windows-x64-installer",
"img/png/.NET.png"));
flowPanel.Controls.Add(CreateAppCard(
".NET 桌面运行时 8.0",
"https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-desktop-8.0.17-windows-x64-installer",
"img/png/.NET.png"));
flowPanel.Controls.Add(CreateAppCard(
".NET 运行时 8.0",
"https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-8.0.17-windows-x64-installer",
"img/png/.NET.png"));
flowPanel.Controls.Add(CreateAppCard( flowPanel.Controls.Add(CreateAppCard(
"openlist", "openlist",
"https://ghproxy.net/https://github.com/OpenListTeam/OpenList/releases/download/beta/openlist-windows-amd64.zip", "https://ghproxy.net/https://github.com/OpenListTeam/OpenList/releases/download/beta/openlist-windows-amd64.zip",
@@ -226,6 +301,11 @@ namespace AppStore
"https://vscode.download.prss.microsoft.com/dbazure/download/stable/dfaf44141ea9deb3b4096f7cd6d24e00c147a4b1/VSCodeSetup-x64-1.101.0.exe", "https://vscode.download.prss.microsoft.com/dbazure/download/stable/dfaf44141ea9deb3b4096f7cd6d24e00c147a4b1/VSCodeSetup-x64-1.101.0.exe",
"img/png/vscode.png")); "img/png/vscode.png"));
flowPanel.Controls.Add(CreateAppCard(
"vs community 2022",
"https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false",
"img/jpg/vs.jpg"));
flowPanel.Controls.Add(CreateAppCard( flowPanel.Controls.Add(CreateAppCard(
"7-Zip", "7-Zip",
"https://objects.githubusercontent.com/github-production-release-asset-2e65be/466446150/1645817e-3677-4207-93ff-e62de7e147be?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250613%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250613T035936Z&X-Amz-Expires=300&X-Amz-Signature=5e02d5fc34f45bd8308029c9fc78052007e9475ce0e32775619921cb8f3b83ea&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D7z2409-x64.exe&response-content-type=application%2Foctet-stream", "https://objects.githubusercontent.com/github-production-release-asset-2e65be/466446150/1645817e-3677-4207-93ff-e62de7e147be?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250613%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250613T035936Z&X-Amz-Expires=300&X-Amz-Signature=5e02d5fc34f45bd8308029c9fc78052007e9475ce0e32775619921cb8f3b83ea&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D7z2409-x64.exe&response-content-type=application%2Foctet-stream",
@@ -236,6 +316,11 @@ namespace AppStore
"https://ghproxy.net/https://github.com/zs-yg/package/releases/download/v0.1/7-Zip.7z", "https://ghproxy.net/https://github.com/zs-yg/package/releases/download/v0.1/7-Zip.7z",
"img/png/7ziplogo.png")); "img/png/7ziplogo.png"));
flowPanel.Controls.Add(CreateAppCard(
"peazip",
"https://ghproxy.net/https://github.com/peazip/PeaZip/releases/download/10.4.0/peazip-10.4.0.WIN64.exe",
"img/jpg/peazip.jpg"));
flowPanel.Controls.Add(CreateAppCard( flowPanel.Controls.Add(CreateAppCard(
"GreenShot", "GreenShot",
"https://objects.githubusercontent.com/github-production-release-asset-2e65be/36756917/239aedb0-7d29-11e7-9f9c-d36ec4466ade?X-Amz-Algorithm=AWS4-HMAC-SSHA256&X-Amz-Credential=releaseassetproduction%2F20250613%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250613T041723Z&X-Amz-Expires=300&X-Amz-Signature=be1ef88a68bbc7065af5111809d11de881022933b44f6d961eb6bd6e6b7e60a8&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3DGreenshot-INSTALLER-1.2.10.6-RELEASE.exe&response-content-type=application%2Foctet-stream", "https://objects.githubusercontent.com/github-production-release-asset-2e65be/36756917/239aedb0-7d29-11e7-9f9c-d36ec4466ade?X-Amz-Algorithm=AWS4-HMAC-SSHA256&X-Amz-Credential=releaseassetproduction%2F20250613%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250613T041723Z&X-Amz-Expires=300&X-Amz-Signature=be1ef88a68bbc7065af5111809d11de881022933b44f6d961eb6bd6e6b7e60a8&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3DGreenshot-INSTALLER-1.2.10.6-RELEASE.exe&response-content-type=application%2Foctet-stream",
@@ -276,26 +361,26 @@ namespace AppStore
"https://ghproxy.net/https://github.com/mifi/lossless-cut/releases/download/v3.64.0/LosslessCut-win-x64.7z", "https://ghproxy.net/https://github.com/mifi/lossless-cut/releases/download/v3.64.0/LosslessCut-win-x64.7z",
"img/png/LosslessCut.png")); "img/png/LosslessCut.png"));
flowPanel.Controls.Add(CreateAppCard(
"mingw-64",
"https://ghproxy.net/https://github.com/niXman/mingw-builds-binaries/releases/download/15.1.0-rt_v12-rev0/x86_64-15.1.0-release-posix-seh-ucrt-rt_v12-rev0.7z",
"img/png/mingw-64.png"));
flowPanel.Controls.Add(CreateAppCard( flowPanel.Controls.Add(CreateAppCard(
"Edge", "Edge",
"https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/cb21e6b5-3f63-4df2-bec3-a2015b80dc56/MicrosoftEdgeEnterpriseX64.msi", "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/cb21e6b5-3f63-4df2-bec3-a2015b80dc56/MicrosoftEdgeEnterpriseX64.msi",
"img/jpg/edge.jpg")); "img/jpg/edge.jpg"));
flowPanel.Controls.Add(CreateAppCard(
"Min",
"https://ghproxy.net/https://github.com/minbrowser/min/releases/download/v1.35.0/min-1.35.0-setup.exe",
"img/jpg/Min.jpg"));
flowPanel.Controls.Add(CreateAppCard(
"Brave",
"https://ghproxy.net/https://github.com/brave/brave-browser/releases/download/v1.79.126/BraveBrowserSetup.exe",
"img/png/brave.png"));
flowPanel.Controls.Add(CreateAppCard( flowPanel.Controls.Add(CreateAppCard(
"Firefox", "Firefox",
"https://download-ssl.firefox.com.cn/releases-sha2/full/116.0/zh-CN/Firefox-full-latest-win64.exe", "https://download-ssl.firefox.com.cn/releases-sha2/full/116.0/zh-CN/Firefox-full-latest-win64.exe",
"img/jpg/firefox.jpg")); "img/jpg/firefox.jpg"));
flowPanel.Controls.Add(CreateAppCard(
"Msys2",
"https://github.com/msys2/msys2-installer/releases/download/2025-02-21/msys2-x86_64-20250221.exe",
"img/png/MSYS2.png"));
flowPanel.Controls.Add(CreateAppCard( flowPanel.Controls.Add(CreateAppCard(
"Mem Reduct", "Mem Reduct",
"https://memreduct.org/files/memreduct-3.5.2-setup.exe", "https://memreduct.org/files/memreduct-3.5.2-setup.exe",
@@ -371,11 +456,6 @@ namespace AppStore
"https://ghproxy.net/https://github.com/microsoft/TypeScript/releases/download/v5.8.3/typescript-5.8.3.tgz", "https://ghproxy.net/https://github.com/microsoft/TypeScript/releases/download/v5.8.3/typescript-5.8.3.tgz",
"")); ""));
flowPanel.Controls.Add(CreateAppCard(
"peazip",
"https://ghproxy.net/https://github.com/peazip/PeaZip/releases/download/10.4.0/peazip-10.4.0.WIN64.exe",
"img/jpg/peazip.jpg"));
flowPanel.Controls.Add(CreateAppCard( flowPanel.Controls.Add(CreateAppCard(
"Gimp", "Gimp",
"https://mirror.nju.edu.cn/gimp/gimp/v3.0/windows/gimp-3.0.4-setup.exe", "https://mirror.nju.edu.cn/gimp/gimp/v3.0/windows/gimp-3.0.4-setup.exe",
@@ -625,21 +705,6 @@ namespace AppStore
"Ditto", "Ditto",
"https://ghproxy.net/https://github.com/sabrogden/Ditto/releases/download/3.24.246.0/DittoSetup_64bit_3_24_246_0.exe", "https://ghproxy.net/https://github.com/sabrogden/Ditto/releases/download/3.24.246.0/DittoSetup_64bit_3_24_246_0.exe",
"img/png/Ditto.png")); "img/png/Ditto.png"));
flowPanel.Controls.Add(CreateAppCard(
"XDM",
"https://github.com/subhra74/xdm/releases/download/7.2.11/xdm-setup.msi",
"img/png/XDM.png"));
flowPanel.Controls.Add(CreateAppCard(
"FDM",
"https://files2.freedownloadmanager.org/6/latest/fdm_x64_setup.exe",
"img/png/FDM.png"));
flowPanel.Controls.Add(CreateAppCard(
"ABDM",
"https://ghproxy.net/https://github.com/amir1376/ab-download-manager/releases/download/v1.6.4/ABDownloadManager_1.6.4_windows_x64.exe",
"img/png/ABDM.png"));
} }
private FlowLayoutPanel downloadsFlowPanel = new FlowLayoutPanel(); private FlowLayoutPanel downloadsFlowPanel = new FlowLayoutPanel();