Menus, Reports & MDI
Menus
Use MenuStrip in WinForms to provide top-level navigation.
Typical Items: File (New, Open, Save, Exit), Edit (Copy, Paste), View (Toggle Panels), Help (About).
Wiring Events:
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
Reports (Conceptual)
- Summaries / aggregated views of data
- Can be generated manually (string building, DataGridView export) or via reporting tools (e.g., RDLC, Crystal Reports)
Simple Text Report Pattern
var report = new StringBuilder();
report.AppendLine("STUDENT SUMMARY");
foreach (var s in students)
report.AppendLine($"{s.Id}\t{s.Name}\t{s.Average:0.0}");
File.WriteAllText("students_report.txt", report.ToString());
MDI (Multiple Document Interface)
Parent window hosts multiple child forms inside a single container.
Steps:
- Set parent form
IsMdiContainer = true - Create child:
child.MdiParent = this; child.Show();
Pros: Centralized menus/toolbars; Cons: Outdated UX vs. tabbed interfaces.
Status & Tool Strips
StatusStripfor state messagesToolStripfor quick actions (icons)
Keyboard Shortcuts
Assign via ShortcutKeys property (e.g., Ctrl+S for Save menu item).
Printing / Export Basics
- DataGridView -> CSV (loop rows/cells)
- Report text -> PDF (via library) or print dialog
Next Steps
Introduce a sample WinForms app: Menu (File->Export), Child windows for Editors, Report generation.