Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Panel (Autosize) ändert seine Größe nicht
SGT_BOB
myCSharp.de - Member



Dabei seit:
Beiträge: 125
Herkunft: Aachen

Themenstarter:

Panel (Autosize) ändert seine Größe nicht

beantworten | zitieren | melden

Hallo Leute.

Hab ein Problem mit einem Panel (Autosize = true). Das Element auf dem Panel ist ein SurfaceControl(ähnlich wie PictureBox). Ändere ich die Größe des SurfaceControls zur Laufzeit auf einen kleineren Wert, bleibt die Größe des Panels gleich.

Beispiel:

Alte Größe:
SurfaceControl: 800x800
Panel: 800x800

Neue Größe:
SurfaceControl: 400x400
Panel: 800x800 (immer noch)

Ändere ich die Größe manuell im Quelltext mit

this.panelMap.Size = this.scMap.Size;

"verschwindet" mein SurfaceControl. 8o

Sollte sich "Autosize" nicht eigentlich darum kümmern und wieso ist bei manueller Anpassung mein SurfaceControl nicht mehr sichtbar???

Hier nochmal ein wenig Source: (die Größe von scMap wird über einen Dialog geändert)


NewMap nm = new NewMap(this);
nm.ShowDialog(this);
if(nm.DialogResult == DialogResult.OK)
{
	this.scMap.Refresh();
	Console.WriteLine("DialogResult: OK");
	this.panelMap.Size = this.scMap.Size; // manuelle Anpassung
	Console.WriteLine("scMap.Size: " + scMap.Size);
	Console.WriteLine("panelMap.Size: " + this.panelMap.Size);

	this.CreateMap(); // hier wird an den beiden Elementen nix mehr
                                          // geändert, außer ein panelMap.ResumeLayout();
}

Hoffe ich konnte es ein wenig verständlich erklären und dass ihr mir fleißig antwortet.

Mfg

SGT_BOB
*************************
Ich bin root, ich darf das...
root>_
*************************
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo SGT_BOB,

WPF oder Windows.Forms?

Hast du Panel.AutoSizeMode passend gesetzt?

BTW: Vielleicht ist Dock oder Anchor eher was du bauchst.

herbivore
private Nachricht | Beiträge des Benutzers
SGT_BOB
myCSharp.de - Member



Dabei seit:
Beiträge: 125
Herkunft: Aachen

Themenstarter:

beantworten | zitieren | melden

Hi herbivore.

Ist für Windows.Forms.

Ich habe ein Panel (Autoscroll), darauf ein Panel (Autosize) und darauf ein SurfaceControl.

Hab jetzt ein wenig herumprobiert und es funktioniert wie es soll.

Hab SurfaceControl.Dock.Fill gesetzt und ändere jetzt im Programm einfach die Größe des Autosize-Panel, welches jetzt auch kein Autosize mehr braucht.

Manchmal denkt man einfach in die falsche Richtung und ist dann froh, dass es Leute wie dich gibt, die den Blick wieder richten.

Habe die ganze Zeit versucht das Panel dem SurfaceControl anzupassen, statt anders herum.

Vielen Dank.

SGT_BOB
*************************
Ich bin root, ich darf das...
root>_
*************************
private Nachricht | Beiträge des Benutzers