C# - Resize automatico di un Form inserito in uno SplitterPanel

martedì 24 aprile 2007 - 11.47

Nerbo Profilo | Newbie

Ciao a tutti,

ho creato uno SplitContainer, all'interno del quale, nel panel 1, vado ad aggiungere un form via codice. Il form viene creato massimizzato. Cio' che vorrei (e che non riesco ad ottenere) e' che quando muovo lo splitter per ridimensionare i due pannelli, il form venga ridimensionato anche esso, sia cioe' "legato" al bordo dello splitter.

Ad esempio, se avvio l'applicazione, credo il form nello splitter (che occupa tutto lo spazio disponibile nel panel) ed allargo orizzontalmente lo splitter, il form da me creato resta delle dimensioni iniziali, ossia quelle dello splitter panel 1 al momento della creazione del form.

Ho provato ad impostare la property:

myForm.Dock = System.Windows.Forms.DockStyle.Fill;

Ma non ho ottenuto l'effetto desiderato.

Non e' un'applicazione MDI.

Grazie in anticipo,

Leonardo

munissor Profilo | Senior Member

Dovresti attaccarti agli eventei dello spitter (o splitpanel) e ridimensionare da te la form di conseguenza..

Nerbo Profilo | Newbie

Grazie, comunque lo avevo gia' fatto, ma non e' cio' che intendevo.

Cio' che volevo ottenere era l'espansione automatica della finestra interna, come nelle MDI quando si massimizza la child window e poi si ridimenisiona la form principale (la finestra interna "segue" la finestra padre).

Ti ringrazio comunque per l'interessamento!

Leonardo

genzostyle Profilo | Newbie

ciao,
potresti pubblicare il codice per far visualizzare il form sullo split?

Nerbo Profilo | Newbie

Scusa il ritardo, eccolo:


questo e' il corpo della funzione m_systemTreeView_MouseDoubleClick() (quando doppioclicco su una treeview apre il form):

MyForm mainForm = new MyForm(); this.m_splitContainer.Panel1.Controls.Add(mainForm); mainForm.Show();

InitializeComponents() di MyForm :

this.SuspendLayout(); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScroll = true; this.AutoSize = true; this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.ClientSize = new System.Drawing.Size(1058, 503); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; this.MinimumSize = new System.Drawing.Size(50, 50); this.Name = "MyTestForm"; this.ShowIcon = false; this.ShowInTaskbar = false; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.TopLevel = false; this.ResumeLayout(false);


Ciao!

genzostyle Profilo | Newbie

Grazie mille!
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