Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
C# Ridimensionamento automatico WinForm
mercoledì 23 febbraio 2011 - 20.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 4.0
|
Visual Studio 2010
luca.santaniello
Profilo
| Newbie
28
messaggi | Data Invio:
mer 23 feb 2011 - 20:25
Salve a tutti,
ho letto l'articolo ufficiale "Ridimensionamento automatico in Windows Form" (
http://msdn.microsoft.com/it-it/library/ms229605.aspx
) ma non riesco a mettere in pratica quello che ho letto, potreste darmi una mano a capire cosa sbaglio?
Ho creato una winform 1280x800. La win form contiene un panel vuotoche viene ancorato alla form. Ho creato 2 panel sempre di dimensioni 1280x800 che aggiungo a run time alla form.
Avvio il programma, si apre una piccola form, clicco su un button in esso contenuto. Al click sul button si apre la form suddetta con uno dei panel. Se la risoluzione è 1280x800, nessun problema, il panel occupa tutta l'area a disposizione così come l'ho creata. Se la risoluzione è più grande, invece, il panel occupa soltanto l'area 1280x800, tutto il superfluo non viene utilizzato.
Il form ed i panel hanno le seguenti property:
AutoScaleMode: Dpi
AutoSize: true
AutoSizeMode: GrowAndShrink
Aiutatemi a capire per favore che sto uscendo matto!
Grazie in anticipo a tutti
Luca Santaniello
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mer 23 feb 2011 - 23:02
Ciao.
usa anche
.Dock = Fill;
Cristian Barca
luca.santaniello
Profilo
| Newbie
28
messaggi | Data Invio:
gio 24 feb 2011 - 17:26
Ti ringrazio prima di tutto per aver risposto alla mia richiesta di aiuto ma purtroppo continuo a non trovare la soluzione.
Il Form non ha la proprietà Dock. Il Panel vuoto che inserisco nel form invece si e quindi l'ho messo a Fill.
Quando parte il programma faccio una cosa del genere:
MioPanel myPanel = new MioPanel();
myForm.panel.Controls.Clear();
myForm.panel.Controls.Add(myPanel);
myPanel è stato costruito come UserControl e non ha la proprietà Dock.
Cosa sbaglio?
Grazie ancora
Luca Santaniello
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
ven 25 feb 2011 - 07:28
>Ti ringrazio prima di tutto per aver risposto alla mia richiesta
>di aiuto ma purtroppo continuo a non trovare la soluzione.
>
>Il Form non ha la proprietà Dock. Il Panel vuoto che inserisco
>nel form invece si e quindi l'ho messo a Fill.
>
>Quando parte il programma faccio una cosa del genere:
>
>MioPanel myPanel = new MioPanel();
>myForm.panel.Controls.Clear();
>myForm.panel.Controls.Add(myPanel);
>
>myPanel è stato costruito come UserControl e non ha la proprietà
>Dock.
>
>Cosa sbaglio?
>
>Grazie ancora
>Luca Santaniello
Ciao.
il codice che usi è corretto. Io aggiungerei anche questo per completezza:
MioPanel myPanel = new MioPanel();
myPanel.Location = new Point(0,0);
myPanel.Dock = Dock.Fill;
myForm.panel.Controls.Clear();
myForm.panel.Controls.Add(myPanel);
In questo modo il tuo usercontro si "ancora" in automatico al contenitore (in questo caso alla form).
Ora occorre vedere all'interno dell'usercontrol se hai dato le proprietà di ridimensionamento ai controlli che ci sono dentro.
Per fare un test basta che apri in progettazione l'userControl e ne aumenti e diminuisci le dimensioni con il mouse. Se i controlli all'interno rimangono fermi allora non hai dato gli ancor, se si muovono allora il problema è un altro.
Ciao
Cristian Barca
luca.santaniello
Profilo
| Newbie
28
messaggi | Data Invio:
ven 25 feb 2011 - 21:43
Grazie mille, grazie al tuo aiuto ho quasi raggiunto l'obiettivo... ho un altro problema però... il ridimensionamento delle label... ma il font non si adatta in proporzione?
Luca Santaniello
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
ven 25 feb 2011 - 23:45
>Grazie mille, grazie al tuo aiuto ho quasi raggiunto l'obiettivo...
>ho un altro problema però... il ridimensionamento delle label...
>ma il font non si adatta in proporzione?
>Luca Santaniello
Ciao Luca. La label normalmente quando la disegni sulla form prende la proprietà AutoSize = true in automatico. Questo fa si che adatta in automatico la larghezza in base al testo. Se togli questa proprietà (autosize = false) puoi ancorare la label la contenitore in modo che si allarghi o restriga di conseguenza. Per il carattere in automatico non fa niente. Se voui potresti ascoltare l'evento SizeChanged della label e ricalcolare tu la dimensione del font e quant'altro.......
Ciao
Cristian Barca
Torna su
Stanze Forum
Elenco Threads
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 !