Phase 2: Launcher-UI + eigenstaendige Modul-Fenster

- Form1 -> LauncherForm (Dateien via git mv, Designer/resx angepasst)
- Modul-Tab: Karten aus ModuleRegistry mit "Fenster oeffnen"-Button je Modul
- UI/WindowManager: Fenster-Tracking (Key->Form), Re-Open fokussiert, CloseAll
- UI/ModuleFormBase: Basisklasse fuer eigenstaendige Modul-Fenster
- CongressTradingForm: DB-Kennzahlen + manueller Scrape-Trigger (Phase-4-Ausbau folgt)
- WindowManager in DI; Launcher schliesst Modul-Fenster beim Beenden
- Tests: WindowManager (6) -> 21/21 gruen; Launcher-Start verifiziert

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
This commit is contained in:
Richard
2026-07-27 10:39:50 +02:00
parent 5815d3258f
commit d0bc833235
11 changed files with 483 additions and 59 deletions
+25
View File
@@ -0,0 +1,25 @@
namespace IBKRTrader.UI;
/// <summary>
/// Basisklasse für eigenständige Modul-Fenster.
/// Stellt gemeinsame Grundeinstellungen (Größe, Startposition) bereit und
/// hält den Modul-Key, damit der Launcher/WindowManager das Fenster zuordnen kann.
/// </summary>
public class ModuleFormBase : Form
{
/// <summary>Kürzel des zugehörigen Moduls (z. B. "CT").</summary>
public string ModuleKey { get; }
// Parameterloser Ctor nur für den WinForms-Designer.
protected ModuleFormBase() : this("") { }
protected ModuleFormBase(string moduleKey)
{
ModuleKey = moduleKey;
Width = 900;
Height = 600;
StartPosition = FormStartPosition.CenterScreen;
ShowInTaskbar = true;
MinimumSize = new Size(600, 400);
}
}