Привязка кнопок к определенному разделу 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;
            }
        }
    }
}

→ Ссылка