Привязка кнопок к определенному разделу C#
У меня есть окно WinForms
в котором расположено AccordionControl
панель, в которой записаны разделы и их подразделы.
Я хочу чтобы в свободном месте справа появлялась информация по разделу, а именно: Имя
, Фамилия
, Отчество
и другие, по сути сделать окно в окне, но не понимаю что нужно сделать, чтобы это окно относилось конкретно к этому разделу, то есть если я нажму на другой раздел - появится информация по другому разделу, а эта скроется.
Ответы (1 шт):
Если кому-то понадобится - я нашел ответ.
Нужно добавить элемент Panel
на правую часть поля, растянуть на весь экран, который остался и создать новый элемент User Control
, нажав на Add
внутри проекта. Далее просто сделать на примере кода ниже:
using DevExpress.XtraBars.Navigation;
using System;
using System.Windows.Forms;
using Bank.View;
namespace Bank
{
public partial class LoginMain : DevExpress.XtraEditors.XtraForm
{
public LoginMain()
{
InitializeComponent();
ControlLoginMain.ElementClick += AccordionControl_ElementClick; // Подключаем обработчик кликов
}
private void LoadUserControl(UserControl control)
{
// Очистка текущего содержимого Panel
mainPanel.Controls.Clear();
// Растягиваем UserControl на всю область Panel
control.Dock = DockStyle.Fill;
// Добавляем UserControl в Panel
mainPanel.Controls.Add(control);
}
private void AccordionControl_ElementClick(object sender, ElementClickEventArgs e)
{
// Проверяем, какой пункт меню выбран
switch (e.Element.Text)
{
case "Главная":
LoadUserControl(new AccountsControl());
break;
case "Счета/Карты":
LoadUserControl(new CardControl());
break;
case "Переводы":
LoadUserControl(new TransferControl());
break;
case "История транзакций":
LoadUserControl(new TransactionsControl());
break;
case "Платежи":
LoadUserControl(new PaymentsControl());
break;
case "Коммунальные услуги":
LoadUserControl(new CommunalControl());
break;
case "Кредиты":
LoadUserControl(new CreditsControl());
break;
case "Депозиты":
LoadUserControl(new DepositsControl());
break;
case "Настройки":
LoadUserControl(new SettingsControl());
break;
case "Поддержка":
LoadUserControl(new HelpControl());
break;
case "Выход":
LoadUserControl(new ExitControl());
break;
default:
mainPanel.Controls.Clear();
break;
}
}
}
}