Vnitřní šířka formuláře   zodpovězená otázka

Komponenty, WinForms

Zdravím,

chci se zeptat jak zjistím vnitřní šířku např. formuláře? ve VB6 to bylo pod me.scalewidth ale tady na to nemůžu přijít? když použiju me.bounds.width tak mi ale vrátí hodnotu širší než je šířka prvku.

Předem díky

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud myslíte klientskou část formuláře (oblast bez okrajů a titulkového pruhu) tak to je vlastnost ClientRectangle.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Bohužel to asi není ono :c( Mam MDI formulář a do něj chci vložit podřízený formulář tak aby se vyplnil na celou šířku (nechci použít Dock), ale ClientRectangle a i ClientSize mi vrací šířku 1024 což je šířka rozlišení monitoru :c( Aby MDI formulář nedostal posuvník musí ten podřízený form mít šířku 1020 ale to mam odečtený teď jak tuto hodnotu zjistit kódem?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud chcete aby byl podřízený formulář maximalizován v rámci MDI formuláře, nastavte podřízenému formuláři WindowState na Maximized. Aby byl roztažený po celé ploše MDI formuláře, ale přitom nebyl maximalizovaný nemá žádný smysl.

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Mozna jsem zapomel ze vyska toho horniho formu ma byt 50 a formborder je none

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Co se snažíte udělat? Pokud chcete udělat ukotvování oken jako ve Visual Studiu, nepoužívejte k tomu standardní Form, protože požadovaného výsledku stejně nedosáhnete.

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Potřebuji udělat toto:

http://www.klain.cz/screen.jpg

ale když kliknu na horní form tak se mi stane toto

http://www.klain.cz/screen2.jpg

a když kliknu zase do toho pravého formu tak se to vrátí do prvního obrázku. Prostě bych potřeboval mít takto ukotvené formy.

Proto sem chtěl použít buď Dock nebo si zjistit vnitřní rozměr formuláře. Tak jsem to dělal ve VB6 pomocí scalewidth a scaleheight a nebyl problém. Ale tady ve VB2008 nemůžu dostat požadovanou hodnotu. Mam rozlišení monitoru 1024x768 a MDI form na celou obrazovku a když dam form.width tak mi vrátí 1030 ??? a form.bounds.width mi vrátí 1024 stejně tak clientrectangle a clientsize.

Poradíte tedy čím by bylo lepší ty okna ukotvit? Např tím DockPanel Suite ???

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

V tom případě nechápu, proč nepoužijete obyčejný Panel, případně Panel v kombinaci s TableLayoutPanelem (nebo Rectangle z PowerPacku, který podporuje i vyplnění barevným přechodem). Všechny výše uvedené prvky lze použít jako kontejner, tj. lze na ně umísťovat další ovládací prvky.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Zatím tyto prvky neznám :c( Můžete mi zhruba nastínit jak je použít?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak triviální úkony jako popis a rozmístění komponent na formuláři vám popisovat nebudu. Vytvořte si testovací projekt a pohrajte si s tím sám. Než začnete něco naslepo splácávat dohromady, vyzkoušejte si různé komponenty z panelu nástrojů abyste zjistil co která umí. Rovněž nastudujte základní společné vlastnosti komponent, bude se vám to hodit. Přeskočit z VB6 na VB.NET a začít hned něco dělat bez předchozího seznámení s Frameworkem je holý nesmysl.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback