using laba3.Core; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static laba3.Core.Menu; namespace ProgLab1.GUI { public partial class MenuForm : Form { public MenuForm(Menu consoleMenu) { InitializeComponent(); this.Width = 800; this.Height = 600; AddMenu(consoleMenu); } /// /// Adds menu to GUI /// /// TUI menu private void AddMenu(Menu consoleMenu) { FlowLayoutPanel buttonPanel = new FlowLayoutPanel { Dock = DockStyle.Fill, // Растягиваем на всю форму FlowDirection = FlowDirection.TopDown, // Кнопки располагаются сверху вниз WrapContents = false // Запрет переноса }; Label menuLabel = new Label { Text = consoleMenu.GetTitle(), // Текст заголовка Font = new System.Drawing.Font("Arial", 16, System.Drawing.FontStyle.Bold), // Стиль шрифта TextAlign = System.Drawing.ContentAlignment.MiddleCenter, // Выравнивание текста по центру Dock = DockStyle.Top, // Заголовок сверху Height = 40 // Высота заголовка }; buttonPanel.Controls.Add(menuLabel); foreach (MenuOption option in consoleMenu.GetOptions()) { Button button = new Button { Text = option.Name, Width = buttonPanel.Width - 10, Height = 40, Margin = new Padding(5), }; // Связываем обработчик с OnSelect из консольного меню button.Click += (sender, e) => option.Action(); buttonPanel.Controls.Add(button); } this.Controls.Add(buttonPanel); } } }