Я должен обработать несколько панелей, содержа variuous маски данных. Каждая панель должна быть видимым использованием управления TreeView.
В это время я обрабатываю видимость панелей вручную, путем создания выбранной видимой и добиваюсь успеха вершина.
На самом деле это не очень удобно, особенно в разработчике UI, с тех пор когда я добавляю совершенно новую панель, я должен изменить размер каждой панели и затем разработать ее...
Хорошее решение использовало бы TabControl, и каждая панель содержится в TabPage. Но я не могу найти способ скрыть кнопки TabControl, так как у меня уже есть TreeView для выбора объектов.
Другим решением был бы ipotethic "StackPanelControl", где Панели расположены с помощью стека, но я не мог найти его нигде.
Что лучшее решение состоит в том, чтобы обработать этот вид UI?
Вам понадобится немного волшебства Win32 API. Элемент управления вкладкой отправляет сообщение TCM_ADJUSTRECT, чтобы приложение могло настроить размер вкладки. Добавьте новый класс в свой проект и вставьте код, показанный ниже. Скомпилировать. Перетащите новый элемент управления из верхней части панели инструментов в форму.
Вы получите вкладки во время разработки, чтобы вы могли легко переключаться между страницами. Вкладки скрыты во время выполнения, используйте свойство SelectedIndex или SelectedTab для переключения между «представлениями».
using System;
using System.Windows.Forms;
class StackPanel : TabControl {
protected override void WndProc(ref Message m) {
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
}