Nestandartní změna rozlišení po přenesení projektu   otázka

VB.NET

Dobrý den,

mám tento problém s VS2010: Na svém PC s rozlišením 1920x1080 vytvářím formulář, který vyžaduje minimální rozlišení 1280x800. Nastavím MinimumSize a Size na 1280x800. Po přenesení projektu na notebook s rozlišením 1280x800 se mi při úpravě formuláře automaticky změní MinimumSize na 1278x768, změní se velikost formuláře a prvky které měly Anchor Right a Bottom se nepřizpůsobí formuláři. Chci se zeptat, je-li toto nějaké nastavení Visual Studia a co s tím.

Předem Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je na tom desktopu jiné nastavení DPI než na notebooku?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Abych to upřesnil, jedná se o notebook s rozlišením 1280x800 a k němu připojené LCD s 1920x1080. Po odpojení LCD a programování pouze na display-i notebooku se mi automaticky změní MinimumSize a Size. Proto si myslím, že DPI by mi nemělo mýt vliv.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Odpovězte na to, na co se ptám. Pokud je na obou počítačích nastaveno jiné DPI, problém je pravděpodobně v tom.

Viz. http://www.vbnet.cz/clanek--200-navrh_uz... odstavec Nežádoucí efekt vzniklý jiným nastavením DPI než na vývojářském systému.

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

Nikdy jsem to blíže nezkoumal, ale již dříve jsem si všiml, že Visual Studio pravděpodobně operuje s hodnotami rozlišení aktuálního monitoru při nastavování vlastnosti MinimumSize u formuláře. Alespoň takový je můj subjektivní dojem, samozřejmě se mohu mýlit.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Teď jsem zkusil ve 2008 a Windows Forms nastavit MinimumSize na 1920x1080, přičemž používám 1280x1024 a 96 DPI. Návrhář automaticky změnil MinimumSize na 1278x982, takže na tom něco bude. Každopádně nastavovat MinimumSize na velikost větší než nativní rozlišení zobrazovacího zařízení je hovadina, pokud to má být na celou obrazovku, tak od toho je WindowState=Maximized a FormBorderStyle=None.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To Ondřej Linhart: Minimální rozlišení potřebuji, protože program na notebooku pouze vytvářím a používat se bude pouze na počítačích s vyším rozlišením. Dalo by se to samozřejmě nastavit až v kódu, ale to mi nepomůže s rozmístěním prvků. A také s chybou kdy mi po odpojení externího monitoru Visual Studio změní MinimumSize a Size na nižší a prvky nechá na stejném místě bez ohledu na Anchor???

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vy zřejmě nechápete účel MinimumSize, nebo ho používáte špatně. Tato vlastnost je k tomu, aby se nastavila minimální velikost formuláře, což bude mít za následek, že uživatel nebude moct zmenšit formulář do velikosti, že se ovládací prvky na něm umístěné smrsknou tak, že je nebude možné používat. Nedovedu si představit co by na formuláři muselo být, aby musel mít minimální velikost 1280x800. Ještě dnes se lze v extrémních případech setkat s rozlišením nastaveným na 800x600.

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

MinimumSize chápu a pužívám přesně tak jak říkáte, ale opravdu potřebuji MinimumSize 1280x800 a vím že aplikace bude spouštěna na monitorech s vyšším rozlišením než má můj vývojový počítač bez externího monitoru, což je ale prakticky úplně jedno já potřebuji na vývojovém počítači programovat s MinimumSize větším než je rozlišení počítače. Nevidím moc velký důvod, proč by to nemělo jít?

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

Skutečně jste neuvedl žádný pádný důvod k dělání takové hovadiny.

Každopádně ve VS2008 (a nejspíš i ve 2010) se to chová tak, jak jsem popisoval a s tím těžko něco uděláte.

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

K dělání takovéto "hovadiny" mám tento důvod: prvky ve formuláři se mi navejdou do menšího formuláře než 1280x800. Proto nastavení MinimumSize na 1280x800. Myslím, že to je logické, ne?

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

Ne, není to logické. Od toho je AutoScroll, TableLayoutPanel a FlowLayoutPanel. Máte základní nedostatky v návrhu UI a proto se to snažíte řešit prasáckým způsobem.

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

V aplikaci není možné použití AutoScrollu ani TableLayoutPanelu ano FlowLayoutPanelu, protože všechny iformace a objekty musí být viditelné na jedné obrazovce. Nevím, jak můžete hodnotit způsob řešení, bez znalosti zadaného projektu a ještě mi ani nejste schopen odpovědět na mojí otázku, jak nastavit větší formulář než je rozlišení vývojového počítače. Je vidět, že jste odborník na slovo vzatý. Moc děkuji, ale Vy jste opravdu moc nepomohl, tak sem radši ani nic nepište.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Na vaši otázku jsem již odpověděl - nic s tím neuděláte, protože vámi chtěnou zhovadělost Visual Studio stejně vždy přenastaví na rozumnou hodnotu. S tím, že se mají všechny ovládací prvky vejít na jednu obrazovku ani jeden z panelů nesouvisí, zjistěte si, k čemu tyto prvky vlastně jsou. Nevím sice, co přesně má váš software dělat, ale pokud nejste schopen zadavateli objektivně obhájit proč to tak nejde, věnujte se míso vývoje software raději například zahradničení.

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

viz. výše, jedná se o stejný počítač (notebook) pouze jednou je připojen externí display a podruhé pracuji pouze na display notebooku. Takže si myslím, že DPI je pořád stejné, ale jak jsem se nyní dočetl, tak Visual Studio 2010 dokáže vytvořit formulář pouze s rozlišením, na které je nastaven počítač (+20 pixelů horizontálně a +20 pixelů vertikálně) což prý v minulých verzích nebylo. Nikde jsem zatím nenašel zda-li se to dá nějak nastavit, aby se ve Visual Studiu 2010 dalo nastavit rozlišení větší než rozlišení monitoru. Toť asi má otázka.

nahlásit spamnahlásit spam 0 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