2008-10-10 7 views
11

Visual Studio 2008 SP1 (obwohl IIRC, das Verhalten war auch im Jahr 2005) behält die Größe einer Reihe von Grid-Steuerelementen (Janus.GridEx um genau zu sein) ich benutze.Wie kann ich Visual Studio davon abhalten, die Größe meiner Steuerelemente zu ändern?

Ich kann sie wieder normalisieren, speichern und kompilieren. Wenn es kompiliert wird, werden diese zwei Steuerelemente zu lächerlichen Werten erweitert.

Weitere Informationen: Dieses Problem hängt mit dem Festlegen der Eigenschaft Anchor auf dem Steuerelement zusammen. Wenn ich die Anchor-Eigenschaft auf entgegengesetzte Enden (z. B. Links und Rechts) setze, wenn die Designer-Datei kompiliert wird, wird die Breite/Höhe des Steuerelements auf die Breite/Höhe des Containers festgelegt.

Es scheint, dass in der Designer-Datei die Anchor-Eigenschaft vor der Size-Eigenschaft festgelegt ist. Manuell bearbeiten (ich weiß, Schande über mich) die Datei, um die Size-Eigenschaft zuerst zu bringen, hilft nicht, als wenn die Designer-Datei kompiliert wird, scheint es auch von Grund auf neu geschrieben werden.

Also meine wahre Frage ist, wie VS Form Designer meine ursprüngliche Größe Erklärung sowie die Anchor-Eigenschaft zu respektieren.

+0

den Code vom Designer bekannt geben; Sind Sie sicher, dass Sie die Dock-Eigenschaft nicht auf Fill gesetzt haben? –

+0

Dock ist keiner. Dies ist kein Problem der Steuerung, die falsch funktioniert. Wenn sie ausgeführt wird, läuft die Anwendung wie vorgesehen. Gerade im Designer wird die Höhe und/oder Breite viel zu groß, um damit zu arbeiten. –

+0

@ [Toast]: ok. Ich bin erst einmal auf diese Art von Problem gestoßen und konnte es nicht lösen - außer, indem ich Dinge im Konstruktor wie oben vorgeschlagen setze. –

Antwort

2

ich in der Regel diese Art von Schwierigkeiten lösen, indem Sie den ‚guten‘ Code in Form Konstruktor setzen, direkt nach dem Aufruf von InitializeComponent(), so dass es überschreibt alle Schlamassel die automatischen Designer Magie verursachen könnte.

+0

Es wäre nett, wenn der Designer die ganze Zeit arbeiten würde, aber manchmal ist es besser, diese Lösung zu verwenden, um den Job zu sortieren und weiterzumachen, anstatt sich Gedanken darüber zu machen, warum der Designer einige Fehler hat. –

+0

Dies scheint die beste Antwort auf mein Problem zu sein. –

0

Normalerweise, wenn ich dieses Problem habe, verwende ich Panels und Labels (leerer Text) mit den Eigenschaften Dock und Padding auf den Steuerelementen, um das gleiche visuelle Aussehen zu erhalten. Ob das für Ihre Form praktisch wäre, hängt davon ab, wie es angelegt ist.

Nicht die beste Lösung wegen all der zusätzlichen Kontrollen, aber es macht die Arbeit erledigt.

+0

Ich habe versucht, ein Panel für beide Steuerelemente hinzuzufügen, aber es hat auch nicht gut funktioniert. –

1

Momentan behandle ich das Resize-Ereignis und setze die Größe auf den zwei erforderlichen Steuerelementen. Ich denke, das ist ein bisschen ein Klud, angesichts der beabsichtigten Wirkung der Anchor-Eigenschaft.

6

ich hatte das gleiche Problem. Die Instanzen meines Benutzersteuerelements im Formular hatten diese Einstellungen. Anker - kein Autosize - falsch Dock - kein

Es Größe veränderte sich noch schrecklich jedes Mal, wenn ich einen Build tat usw.

ich, dass in den Design-Eigenschaften auf der Benutzerkontrolle gefunden, es zu font Autoscale gesetzt hatte . Ich ändere es in keine und das behebt das Problem.

+0

Das hat bei mir funktioniert. Ich hatte zwei Benutzersteuerelemente in einem Formular, das der Designer sowohl skalierte als auch den Speicherort änderte. Beide hatten Autoscalemode auf Schriftart eingestellt. Ich änderte eine auf Keine, und diese Benutzersteuerung verhielt sich plötzlich und nahm keine Größenänderung oder Bewegung vor, während sich die andere weiter bewegte und ihre Größe änderte. Also habe ich den Autoscale-Modus des zweiten User-Controls auf "none" geändert und die Probleme sind jetzt verschwunden. Danke für den Tipp! – Chris

+0

Das war auch mein Problem. Danke, Reich! – pettys

Verwandte Themen