MDI - Multiple Document Interface

форми на контейнери

В Visual Basic молба да добавите форма MDI, който ще служи като контейнер за условните форми. Подформуляр - това е обичайната форма, при което стойността на имота MDIChild равна на True. В навечерието на готовност, подчинени прозорци, поставени вътре в прозореца MDI родителска форма. Меню команди MDI форми могат да бъдат общи за всички подчинени прозорци, или, ако е подформуляра има свои собствени команди на менюто, той замества менюто на формата на контейнера. Когато формата е затворен, контейнерът се затваря всички подчинени форми.

В заявление MDI, можете да отворите много прозорци, изградени върху един и същ модел. В екрана за проектиране, създаване на едно копие на формуляра. За да се изпълни режим, отворете много прозорци в кода създава нови случаи на подформуляра.

Тъй като много подчинени форми имат едно и също име и същи код, тя не трябва да е в кода на програмата (ако кодът се споделя от няколко копия на формуляра) да използва името на формуляра. Модулът за форма за сезиране на сегашната форма, се използва тази Me.

На MDI член контрол форма може да се постави, ако има имущество Align (Линия) е невидима или по време на изпълнение.

Създаване на екип форма контейнер Добави => MDI форма, меню Project.

Във формуляра Form1 се създава Текст1 текстово поле и задайте Многолинейно имота Вярно е, горния и левия 0.

MDIChild сграда, разположена на True.

Създаване на процедура Form_Resize за текст кутия размер варира в зависимост от големината на формата:

Създаване на меню File за форма MDIForm1 на. В процеса на създаване на нов документ, добавете кода:

Код на детето формира Form1:

Създаване на нов елемент от файла меню => Windows. Инсталирайте WindowList имот - за да се покаже списък с наличните прозорци, този хотел е достъпна само за MDI и подчинените форми.

Менютата в MDI приложения

Обикновено се използва няколко набора от менюта. Когато всички документи са затворени, в менюто показва формата MDI. Когато потребителят отвори документа, менюто команда подформуляра от менюто замества формата MDI. Лентата с инструменти е винаги във форма MDI.

По този начин, някои от командите може да бъде под формата на менюто контейнер в менюто и подформуляра в лентата с инструменти. За да не се дублират кода, трябва да се създаде открита процедура в подформуляра, и го наричат ​​от процедурата за боравене събитие.

Форма контейнер може да съдържа множество видове документи.

В менюто File, формата MDI да добавите точка за нов документ.

Меню команди подформуляра също съдържа командите. Трябва да се напише процедура, за да създадете нов документ, и меню команди за производствени процеси.

Код подформуляра:

Товаренето и разтоварването на форми и подформулярите MDI

При зареждането на дадена подформуляра автоматично се задейства и формата на MDI. Въпреки това, когато формата зарежда MDI, подформулярите не са изтеглени автоматично. Това може да се види чрез създаване старт обект MDI форма. Можете да изтеглите най-субформи като скрит чрез създаване AutoShowChildren собственост на True и ги покажете в точния момент от Show.

Разтоварни формата е достъпно Unload команда в програмен код или когато прозорецът се затваря.

В тази обработка се извършва QueryUnload и разтоварване събития за формата, в която могат да бъдат проследени спестяване на въведените данни. Когато разтоварване форми MDI се разтоварват и всички подчинени форми. Край команда причинява незабавното прекратяване на програмата, докато не изпълни процедурите за събития.

Проверка на данните е запазена

В заявление MDI следи за съхранение на данни. Ако има не съхранява данните в края на програмата или при затваряне на документ, данните могат да се съхраняват по подразбиране.

За информация за състоянието на документа в модула подформуляра въведе булева променлива:

Fs променлива се присвоява вярно за всички промени в текстовото поле.

Нека запазването на документа се извършва по процедура SaveFile. Частично FS стигне до False, когато запазите документа.

Ако затворите FS документ Вярно е, функцията MsgBox показва един въпрос и се връща отговор на потребителя. Ако отговорът е да Да, процедурата се извършва SaveFile.