Создать интерфейс MDI с вкладками - PullRequest
0 голосов
/ 16 июля 2009

Я использую C # 2005 для разработки приложения для Windows. Я планирую использовать контейнер вкладок для отображения дочерних форм. Я использовал полосу меню для отображения меню и установил свойство IsMDIContainer = true формы MainMenu. Форма MainMenu также содержит элемент управления вкладками, и я планирую отображать все дочерние формы как страницы-вкладки элемента управления вкладками.

До сих пор я мог добавлять вкладки, когда пользователь выбирает пункт меню. Но я не знаю, как отобразить дочернюю форму на вкладке.

Я использовал следующий код в событии щелчка меню.

frmPurchaseEntry PurchaseEntry = new frmPurchaseEntry;
PurchaseEntry.MdiParent = this;
PurchaseEntry.TabCtrl = tabControl1;

TabPage tpPurchaseEntry = new TabPage();
tpPurchaseEntry.Parent = tabControl1;

tpPurchaseEntry.Text = "Purchase Entry";
tpPurchaseEntry.Show();

PurchaseEntry.TabPag = tpPurchaseEntry;
PurchaseEntry.Show();
tabControl1.SelectedTab = tpPurchaseEntry;

Как правильно отобразить дочернюю форму на вкладке ?? Я не хочу, чтобы Файл -> Новый тип приложения, в котором событие щелчка по меню отображает ту же (пустую) форму. Каждый пункт меню должен отображать уникальную / уникальную форму.

Спасибо.

Лалит Кумар Барик

1 Ответ

0 голосов
/ 16 июля 2009

Может помочь свойство Parent дочерней формы. Установите это для объекта вкладки и посмотрите, что произойдет.

Редактировать: По-видимому, это вызывает ArgumentException. «Элемент управления верхнего уровня не может быть добавлен к элементу управления». Вместо этого вы можете поместить содержимое формы в Panel или что-то еще, а затем установить свойство Parent этой панели.

Другой вариант, которым я пользуюсь сам, - это иметь fake TabStrip, который вызывает метод Activate () для соответствующих форм. Он рисует вкладки, перечисляя родительский список MdiChildren, помня совпадения для каждого из них.

...