WinForm che crescono....

mercoledì 02 novembre 2005 - 19.02

davide_dvd Profilo | Junior Member

Ciao ragazzi, ho un piccolo problemino nella ricerca di una prorpietà dei form, mi spiego subito:

ho un MDI form padre e n figli, alcuni di default devono essere aperti con il windows state Maximized e altri Normal.

se però apro prima un form figlio "grande", cioè che ha come default il windows state maximized, e poi un'altro che invece ha il windows state normal, mi apre anche qeust'ultimo con il windows state del primo form (e viceversa, naturalmente), quindi mi viene maximized e chiaramente graficamente meno elegante di come lo vorrei io.

C'è un modo per "bloccare" il windows state di ogni winform in modo che sia indipendente dalle proprietà degli altri winform aperti in precedenza?? grazieee!!

ysdemarc Profilo | Expert

Ciao.. non credo sia possibile a meno che il form che vuoi aprire normal sia un form "orfano" quindi singolo.

Anche se guardi i normali applicativi microsoft ti accorgi che o apri tutto massimized o tutto normal. E anche se aprissi tutto normal se l'utente prima ingrandisce il form gli altri saranno tutti ingranditi.

Vincenzo
Programmatore sbilenco :-D

davide_dvd Profilo | Junior Member

grazie! allora cercherò di regolarmi di conseguenza... ciao!

davide_dvd

freeteo Profilo | Guru

ciao,
come dice Vincenzo non è possibile questa cosa, ormai dalla notte dei tempi per come gestsce l'ambiente mdi "parent-child" lo stesso windows...
Pero' puoi usare 1trucchetto che torna utile,ovvero fare l'override del metodo resize e "incastrare" la form sulsolo spazio disponibile cosi' se qualche form viene massimizzata in realta' si ingrandisce ma non va mai nello stato "maximized".
Cosi' facendo quelle a grandezza fissa si aprono traqnuillamente e non cambia niente, è 1o scotto che 2o me si puo' pagare...

---------------------------
codice della form child:
---------------------------
private void Form2_Resize(object sender, System.EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
this.Height = this.MdiParent.ClientSize.Height - 5;
this.Width = this.MdiParent.ClientSize.Width - 5;
}
}

cioe' se è massimizzata la fai tornare normale ma grande al massimo disponibile ;-)
ciao

Matteo Raumer
.net addicted :-)
http://blogs.dotnethell.it/freeteo
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5