Рамка (GroupBox), панел (Panel) и раздел (TabControl)
Тези три контроли се отнасят доконтейнери - контроли, които могат да съдържат други контроли на повърхността си. Контейнерите също включват формуляри.
Рамка (GroupBox)
Нека се запознаем с контролатаGroupBox, която ще ни е необходима в проекта "Будилник-Хронометър". Рамките са удобно средство за групиране на контроли заедно по смислен начин. Виждате пример на фиг. 13.1.

Поставете GroupBox във формуляра и му дайте доста голям размер. Резултатът е празна рамка със заглавие GroupBox1. След това вземете от кутията с инструменти и поставете няколко различни контроли в тази рамка. А сега преместете рамката по протежение на формата, като хванете мишката над нейната граница. Можете да видите, че всички обекти в рамката са се преместили с нея. Тук се крие удобството на рамката: обектите, които поставяте вътре в нея, тя смята за „свои“ и влачи по формата след себе си. Погледнете стойностите на свойствата X и Y на всеки обект вътре в рамката. Сега това са координати не спрямо формата, а спрямо рамката.
В режим на проектиране или в код можете да промените стойностите на свойството X и Y на полето. Обектите, комбинирани в полето, ще се движат с полето. Можете да промените стойностите на свойствата на Visible, Enabled, frame. В този случай стойностите на тези свойства ще се променят по същия начин за всички обекти, комбинирани в рамката. Това е полезно, например, когато имате твърде много обекти във формуляра и всички те не се побират в него. Има изход, ако не са необходими всички едновременно. Просто ги разделете между припокриващи се кадри и направете само един от тях видим в даден момент. Имайте предвид, че за това могат да се използват и раздели.
Като промените свойствата на рамката BackColor, ForeColor, Font, виекато по този начин променя тези свойства за обектите, включени в него (с изключение на тези, при които тези свойства вече са променени). Същото важи и за формата, която също е контейнер. Експериментирайте.
Можете да използвате мишката, за да преместите обект, който вече е поставен във формата, в рамката. Веднъж влязъл в границите на рамката, той става „свой” и обикаля с рамката. Но когато се опитате да прегърнете съществуващ обект с нова или стара рамка, ще се провалите. След като влезе в границите на рамката, той ще остане "извънземен". Проверете това, като преместите рамката настрани. Всички си тръгнаха, обектът остана.
Вмъкнете друга рамка в една рамка и няколко обекта в нея. Преместете външната рамка. Вътрешната рамка, заедно с всички нейни обекти, се движи зад нея. Всичко е логично. Сега преместете вътрешната рамка във външната. Можете да видите, че вътрешната рамка се държи както бихте очаквали: за външната рамка тя е „подчинена“, а за обектите вътре в нея е „главна“.
Панел
Панелът е подобен на рамката по много начини. Интересната за нас разлика е, че ако контролите не се побират на панела, тогава могат да му бъдат дадени ленти за превъртане, благодарение на които всеки от неговите контроли може да бъде поставен в зрителното поле (фиг. 13.2).

Направете експеримент. Поставете голям панел върху формата. Поставете няколко контроли върху цялата му повърхност. След това намалете размерите на панела. Много контроли ще изчезнат от погледа. Дайте на панела лента за превъртане, като зададете свойствотоAutoScroll на True. Завъртете ивиците. Това спестява много място във формуляра.
Tab(TabControl)
Раздели, които сте виждали много пъти в много приложения на Windows. Например във VB можете да ги видите вИнструменти ® Персонализиране. Примерможете да видите разделите на фиг. 13.3.

Разделът на тази фигура се състои от триСтраници (TabPage ). (В други подраздели на книгата ще наричам страницикато отметки, тъй като този термин е по-често срещан.) На всяка страница можете да поставите всякакви контроли: бутони, етикети и т.н. Поставих няколко графични полета (PictureBox) с пейзажи на пейзажната страница. Ако щракнете върху думата "Портрети", ще видите страница с портрети. Страниците могат да бъдат снабдени с ленти за превъртане, така че огромен брой контроли да могат да бъдат поставени на всяка страница.
Основното предимство на раздела веднага хваща окото - радикално спестява място във формуляра.
Нека създадем проект с раздел. Поставете TabControl във формуляра. Моля, обърнете внимание, че можете да плъзнете раздел с мишката само като хванете границата му. В прозореца със свойства отидете до неговото свойство TabPages и в прозореца на редактора на раздели, който се показва, щракнете върху бутона Добавяне няколко пъти (щракнато е 3 пъти на фиг. 13.4).

В резултат на това разделът на формуляра ще изглежда като на фиг. 13.5.
От лявата страна на редактора на раздели виждате списък със страници с раздели. От дясната страна на редактора на раздели можете да видите свойствата на избраната страница с раздели. Имотите са доста често срещани. Можете да промените името, текста (заглавието) на страницата, нейния цвят, рамка и т.н. Със свойствотоAutoScroll, зададено на True, лентите за превъртане ще се появят на страницата, ако е необходимо.
Кликнете върху заглавието на страницата, за да я изведете отпред. Ако след това щракнете върху пространството на страницата, ще се уверите, че не е избран целият раздел, а само тази една страница. Съответно в прозореца със свойства на средата на VB свойствата ще се появят не на раздела, а на тази страница.
Поставете всички контроли на тази страница сега. След това изберете друга страница и поставете контроли върху нея. Всички тези контроли могат да се използват по обичайния начин, все едно се намират във формуляра.