Загрузка данных


using System;
using System.Drawing;
using System.Windows.Forms;

namespace YourAppName
{
    public class MainForm : Form
    {
        private CurrentUser _currentUser;
        private Label lblFIO;
        private Button btnLogout;
        private Label lblRoleInfo;

        public MainForm(CurrentUser user)
        {
            _currentUser = user;

            // Настройка окна
            this.Text = "Главное окно системы";
            this.Size = new Size(800, 600);
            this.StartPosition = FormStartPosition.CenterScreen;

            // Инициализация ФИО в правом верхнем углу
            lblFIO = new Label();
            lblFIO.Text = _currentUser.FullName;
            lblFIO.AutoSize = true;
            // Устанавливаем позицию в правый верхний угол с учетом ширины текста
            lblFIO.Location = new Point(this.ClientSize.Width - lblFIO.PreferredWidth - 20, 20);
            lblFIO.Anchor = AnchorStyles.Top | AnchorStyles.Right; // Привязка к правому краю
            lblFIO.Font = new Font("Segoe UI", 10, FontStyle.Bold);

            // Кнопка выхода под ФИО
            btnLogout = new Button();
            btnLogout.Text = "Выйти";
            btnLogout.Size = new Size(100, 30);
            btnLogout.Location = new Point(this.ClientSize.Width - 120, 50);
            btnLogout.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            btnLogout.Click += BtnLogout_Click;

            // Информационный лейбл для демонстрации роли (по центру)
            lblRoleInfo = new Label();
            lblRoleInfo.Text = $"Ваша роль ID: {_currentUser.RoleId}\nЗдесь будет ваш интерфейс.";
            lblRoleInfo.AutoSize = true;
            lblRoleInfo.Location = new Point(300, 250);
            lblRoleInfo.Font = new Font("Segoe UI", 14);

            // Добавляем элементы на форму
            this.Controls.Add(lblFIO);
            this.Controls.Add(btnLogout);
            this.Controls.Add(lblRoleInfo);

            // Обработка закрытия на крестик
            this.FormClosed += MainForm_FormClosed;

            ConfigureAccess();
        }

        private void ConfigureAccess()
        {
            // Здесь вы программно создаете и добавляете (или скрываете)
            // элементы управления DataGridView, Button и т.д. в зависимости от RoleId.
            if (_currentUser.RoleId == 0) // Гость
            {
                // Показываем только каталог
            }
            else if (_currentUser.RoleId == 1) // Пример: Админ
            {
                // Показываем всё
            }
        }

        private void BtnLogout_Click(object sender, EventArgs e)
        {
            Application.OpenForms["LoginForm"]?.Show();
            this.Close();
        }

        private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
        {
            // Завершаем приложение, если окно закрыто не кнопкой "Выйти"
            if (Application.OpenForms["LoginForm"] != null && !Application.OpenForms["LoginForm"].Visible)
            {
                Application.Exit();
            }
        }
    }
}