SartPosition delle form a diverse risoluzioni

giovedì 08 giugno 2006 - 19.00

max1850 Profilo | Junior Member

Salve. Uso VB NET 2005.
Ho notato che quando vado ad installare la mia applicazione su diversi computer le form si aprono in maniera diversa, a seconda della risoluzione usata dal monitor del "cliente".
Ho provato i diversi valori della proprietà "StartPosition" delle form, come Manual, WindowsDefaultLocation, ecc.. ma niente. Manual sembra essere quella che apre le form sempre nello stesso punto.
C'è un qualcosa che fa ignorare la risoluzione dello schermo e fa aprire le form sempre alle stesse coordinate? Oppure, quale si usa quando si distribuisce un'applicazione?
Grazie
Max!

blood Profilo | Senior Member

In genere si decide di fare uno standard "ottimizzato per (ie) 800x600", oppure potresti usare la proprietà WindowState = Maximized il che te la farà apparire estesa a tutto schermo, ma questo non vuoldire che non mostrerà i pulsanti piccoli ad un'alta risoluzione oppure addirittura che non si vedano parte di finestre con una risoluzione molto bassa (purtroppo penso non si possa fare nulla).

idea stupida: al massimo ora stavo pensando che potresti richiarmati mediante delle API di sistema la corrente risoluzione in uso e in base ad essa farti in pratica 3 form differenti con le dimensioni e le posizioni da te scelte (non sono sicuro vadi)

ciao

alextyx Profilo | Expert

Non c'è bisogno di scomodare le API per ottenere la risoluzione, la classe SCREEN fa già il suo buon lavoro!
Tuttavia resta il problema del ridimensionamento globale della form, che per essere ben fatto dovrebbe anche comprendere i font utilizzati, o perlomeno permettere di decidere se ridimensionarli o meno.

max1850 Profilo | Junior Member

Ciao!
Intanto vi ringrazio per l'interessamento.
Ho visto, sfogliando un libro del Framework,che esiste un namespace My.Computer.Screen.
Non so se è la stessa classe di cui parlava alextyx.
Ho visto che questo oggetto ha il membro PrimaryScreen che dovrebbe restituire la risoluzione dello schermo usata. Confermate?
Il fatto è che non riesco a trovare un esempio per capire come si usa.
Consiglio?
Ciao
Max!

blood Profilo | Senior Member

>Ciao!
>Intanto vi ringrazio per l'interessamento.
>Ho visto, sfogliando un libro del Framework,che esiste un namespace
>My.Computer.Screen.
>Non so se è la stessa classe di cui parlava alextyx.
>Ho visto che questo oggetto ha il membro PrimaryScreen che dovrebbe
>restituire la risoluzione dello schermo usata. Confermate?
>Il fatto è che non riesco a trovare un esempio per capire come
>si usa.
>Consiglio?
>Ciao
>Max!

Dim schermo As Screen = Screen.PrimaryScreen

Me.TextBox1.Refresh()
Me.TextBox1.Text = schermo.WorkingArea.Size().ToString ' risoluzione dell'area di lavoro (desktop) esclusa la barra di Avvio





Piscopo Paolo

- wD @ IRCnet - .NET wannabe 8-)

max1850 Profilo | Junior Member

Ottimo blood!
Con il tuo codice ci sono riuscito senza problemi!
Grazie a tutti!
Ciao
Max!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5