Controls.Add(new MineControl()) 建立格子陣列Random 選取索引置雷Initial / Pressed / Flag / QuestionMark / UnsealPress()/UnPress()/PutFlag()/Unseal() 內含狀態轉換與重繪OnPaint 直接畫 Icon,避免 PictureBox 載入延遲與閃爍// MineControl 狀態與繪圖
public enum State { Initial, Pressed, Flag, QuestionMark, Unseal }
protected override void OnPaint(PaintEventArgs e) {
var img = GetImageForState(_state);
e.Graphics.DrawImage(img, 0, 0, Width, Height);
}
// Form1 滑鼠處理
private void MineControl_MouseDown(object sender, MouseEventArgs e) {
var mc = (MineControl)sender;
if (e.Button == MouseButtons.Left) { ... }
else if (e.Button == MouseButtons.Right) { ... }
// 雙鍵需全域 bool leftDown, rightDown 協調
}
圖片資源來源:百度知道搜尋或從系統 winmine.exe 提取。

完整專案已打包,歡迎下載學習、優化重構(如引入 MVVM、單元測試、AI 自動解雷等)。