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();
}
}
}
}