Programování v jazyku C# II. 3.kapitola
Obsah Dokování a kotvení Panely, splittery a jiné kontajnery Složitejší kontrolky MDI aplikace 2/20
Vnější a vnitřní okraje Umožňují snažší rozmisťování prvku automatické rozmisťování plně respektuje okraje ruční rozmisťování vodící linky Možnost nastavit všechny okraje nebo každý zvlášť Vlastnost Margin vnější okraje kontrolky Vlastnost Padding vnitřní okraje kontrolky panel1.margin = new System.Windows.Forms.Padding(20); panel1.padding = new System.Windows.Forms.Padding(10,20,10,20); 3/20
Kotvení Vlastnost Anchor ukotví pozici kontrolky k některému z okrajů výčet AnchorStyles None, Left, Right, Bottom, Top možnost kombinovat různé styly je-li kontrolka uchycena ze dvou protilehlých stran, mění se její velikost s velikostí formuláře Príklad: 4/20
Dokování Vlastnost Dock přilepení kontrolky na některou ze stran rodiče výčet DockStyle None, Left, Right, Top, Bottom, Fill při přichytávání více kontrolek záleží na jejich z-pořadí v parent.controls metody BringToFront() a SendToBack() Příklad: 5/20
Kontajnery Jednoduchý způsob pro seskupení souvisejících kontrolek kolekce Controls Jsou to kontrolky nastavení okrajů nastavení ukotvení nastavení dokování Možnost vypnout celou skupinu vlastnost Enable 6/20
Třída Panel a GroupBox Třída Panel umožňuje přidání posuvníků vlastnost AutoScroll Třída GroupBox obsahuje popisek 7/20
Splitter Třída Splitter pouze předěl mezi dvěma kontrolkami umožňuje měnit velikost zadokovaných kontrolek za běhu možnost nastavit MinimumSize a MaximumSize možnost nastavit směr podle způsobu dokování Trída SpliContainer zjednodušuje práci se splitterem složená komponenta obsahuje dva nezávislé panely 8/20
Automatické rozložení kontrolek Třída FlowLayoutPanel kontrolky se automaticky řadí podle velikosti kontajneru možnost nastavení směru FlowDirection Třída TableLayoutPanel rozdělí oblast na buňky přidá kontrolkám vlastnosti Cell index buňky ColumnSpan, RowSpan sloučení buňek 9/20
Složitější kontrolky Možnost zobrazování více informací rozumnější formou Třída ImageList zajišťuje metody pro správu kolekce obrázku kolekce Images stejná velikost ImageSize typicky je používán pro některé složitější kontrolky TreeView ListView ToolBar 10/20
Třída TreeView Hierarchické uspořádání položek Položky uloženy v kolekci Nodes Jednotlivé položky třída TreeNode Možnost přiřadit jednotlivým položkám obrázky normální (ImageIndex) při výběru (SelectedImageIndex) Možnost nastavit vizuální vlastnosti zobrazit čáry (ShowLines) plus/minus tlačítka (ShowPlusMinus)... 11/20
Příklad TreeView treeview1.nodes.addrange(new TreeNode[] { new TreeNode("Zvírata", new TreeNode[] { new TreeNode("Savci"), new TreeNode("Ptáci") }), new TreeNode("Rostilny") }); treeview1.nodes[1].nodes.add(new TreeNode("Dreviny")); 12/20
Třída ListView Umožňuje zobrazovat kolekci položek ve 4 různých zobrazeních velké ikony malé ikony seznam detaily příklad - viz. Průzkumník Možnost přiřadit obrázky Možnost přidat detaily Položky uloženy v kolekci Items Možnost rozřadit do skupin kolekce Groups Názvy sloupečků uloženy v kolekci Columns Dodatečné informace u položky v kolekci SubItems 13/20
MDI aplikace Multiple Document Interface možnost pracovat s více dokumenty najednou i různorodé dokumenty Vytvoření MDI kontajneru Vytvoření MDI dětí Rozložení oken Společné menu 14/20
MDI kontajner Vlastnost formuláře IsMDIContainer pokud true, formulář muže hostovat MDI okna klientská MDI oblast pokrývá celé okno MDI okno se vykresluje v klientské oblasti uzavření hlavního okna vyvolá událost Closing u všech dětí 15/20
MDI děti Jakýkoliv formulář vlastnost Form MdiParent rodič musí být container, jinak se vytvoří výjimka Pole dětí vlastnost Form[] MdiChildren Aktivní díte vlastnost Form ActiveMdiChild vhodné testovat typ a eventuálně přetypovat muže být null 16/20
Uspořádání oken Metoda LayoutMdi (MdiLayout) ArrangeIcons, Cascade, TileHorizontal, TileVertical Form dite; dite = new MdiChild(); dite.mdiparent = this; dite.show(); dite = new MdiChild(); dite.mdiparent = this; dite.show();... this.layoutmdi (MdiLayout.Cascade); 17/20
Menu U třídy MainMenu u položky vlastnost bool MdiList do položky automaticky přidá seznam MDI oken U třídy MenuStrip u menu vlastnost ToolStripMenuItem MdiWindowListItem ToolStripMenuItem mdi = new ToolStripMenuItem("Okýnka"); this.menustrip1.mdiwindowli stitem = mdi; this.menustrip1.item s.add(mdi); 18/20
Kombinování menu Možnost kombinovat menu rodiče a mdi okna vlastnost MergeIndex určuje shodné položky menu vlastnost MergeAction určuje způsob sjednocení menu MatchOnly najde shodu a sjednotí menu Replace nahradí shodná menu... 19/20
Konec 20/20