C# WinForm 限制視窗不超出螢幕工作區(WndProc + ClipCursor)
防止使用者拖曳視窗移出可見區域,核心技術:攔截 WM_NCLBUTTONDOWN (0xA1) 滑鼠按下非客戶區、WM_MOVING (0x216) 移動中、W
C# CancellationToken 正確停止背景執行緒(取消令牌模式)
暴力 Thread.Abort() 已棄用且不安全。現代 .NET 標準模式:CancellationTokenSource 發出取消信號,執行緒定期檢查 Is
C# WinForm 簡易資料繫結:TextBox 雙向綁定物件屬性
WinForm DataBinding 讓 UI 控制項直接與物件屬性同步,無需手寫賦值/取值代碼。本文示範 Binding 建立 TextBox.Text 雙
C# 動態建立 Button 控制項並綁定 Click 事件
WinForm 執行期動態建立控制項是常見需求。本文示範 new Button() 設定屬性、Controls.Add 加入表單、Lambda 綁定 Click
C# Semaphore 控制執行緒併發數量(生產者消費者/資源池模式)
Semaphore 是控制有限資源併發存取的同步基元,計數器表示可用資源數。本文示範 Semaphore(0, 2) 限制同時進入關鍵區的執行緒數為 2,主執行
C# 寫入 Windows 事件日誌完整封裝(建立來源、寫入、刪除、錯誤處理)
System.Diagnostics.EventLog 提供寫入 Windows 事件檢視器的功能。本文封裝 PackSystemEventLog 靜態類,支援
23 種經典設計模式完整圖解與適用場景速查表
GoF《設計模式》23 種模式分為三大類:創建型、結構型、行為型。本文彙整每種模式的意圖、UML 結構圖連結、適用性判斷標準,供架構設計快速查閱。 創建型
C# 啟動 MSPaint 並最大化視窗載入指定圖片
需求:一鍵啟動系統內建畫圖工具 mspaint.exe,自動載入指定圖片並最大化顯示。利用 ProcessStartInfo 設定 Arguments 傳入檔案
C# 取得工作列顯示的視窗進程資訊(Process.GetProcesses + MainWindowTitle)
需列出使用者實際看到的工作列應用程式(排除背景服務、無視窗進程),核心判斷條件: 0。本文提供完整列舉代碼,輸出標題、PID、進程名、啟動時間。 核心代碼 p
C# WinForm 在獨立執行緒建立永遠置頂視窗(繞過 Modal 阻塞)
需求:一個工具視窗永遠保持最上層(TopMost=true),且在主視窗開啟 ShowDialog() 模態對話框時仍可操作。單一 UI 執行緒下 TopMos
C# WinForm 正確實現登入視窗(DialogResult + Close 而非 Hide)
登入視窗最常見錯誤是驗證通過後用 Hide(),導致視窗實例殘留、資源未釋放、主視窗無法正確判斷登入狀態。正確做法:設定 DialogResult 並呼叫 Cl
C# WinForm 右下角彈出通知動畫(從螢幕外滑入)
模擬 Windows 通知中心/郵件客戶端右下角彈窗:表單從螢幕右下角外側向上滑入,停留數秒後自動關閉或點擊關閉。本文用獨立執行緒 + Invoke 更新 To
C# WinForm 仿視頻播放器左下角跑馬燈文字滾動效果
參考視頻播放器左下角彈幕式跑馬燈,本文用 System.Timers.Timer + Label.Top 動畫實現:文字從下方滾入、停留、淡出,循環播放多條訊息
C# 呼叫 Shell32 API 一鍵清空回收站(可選確認提示、無聲無 UI)
Windows 回收站清空可透過 shell32.dll 的 SHEmptyRecycleBin 函數實現。本文封裝 ClearRecycle.Clear(bo
Android BitmapShader 實現圖片圓角、圓形、橢圓裁剪(繼承 ImageView)
Android 自訂 View 繪製圓角/圓形/橢圓圖片,核心在於 BitmapShader + Canvas.drawRoundRect/drawCircle
C# 繼承 Panel 自訂邊框顏色與寬度(雙緩衝無閃爍)
預設 Panel 僅支援 BorderStyle.FixedSingle/None/Fixed3D,無法自訂邊框顏色與粗細。本文重寫 PanelEx 繼承 Pa
C# WMI 遠端關機/重啟電腦完整實作(含認證與異常處理)
利用 System.Management 命名空間的 WMI Win32_OperatingSystem 類別,可對遠端電腦執行 Shutdown 或 Rebo
C# 定位記事本到指定行並高亮(Win32 API + SendKeys)
需求:從外部程式開啟 notepad.exe 載入文字檔,並自動捲動到指定行號、將該行選取高亮。本文結合 FindWindow/FindWindowEx/Set