2016-07-21 4 views
1

Mein Benutzersteuerelement sieht in seinem Designer so aus.Wie behalte ich die einzelnen Steuerelemente für ein benutzerdefiniertes Benutzersteuerelement davon ab, sich auszubreiten (und weiterhin die Größenänderung zuzulassen)

[My User Control in its designer looks like this:[1]

Aber wenn ich es in eine übergeordnete Form fallen, sieht es wie folgt aus:

In the parent form it looks like this:

Ich habe ein Hauptfeld die "Ordner" Taste und die ComboBox enthält. Die kleinen Navigationsschaltflächen auf der rechten Seite befinden sich im verschachtelten Bedienfeld.

Ich möchte für die einzelnen Steuerelemente die Größe ändern, wenn die Schriftart geändert wird, aber ihren Abstand beibehalten (Es ist ein petve von mir, dass so viele Anwendungen nicht gut damit umgehen können, zB nicht in der Lage, auf das Ganze zugreifen Wenn eine große Schrift verwendet wird, werden Beschriftungen von Schaltflächen abgeschnitten usw.).

Ich habe eine Menge Dinge ausprobiert, aber ich arbeite mit zu vielen Variablen (Anker, Dock, Minsize, Maxsize, Autosize) und nicht alle Interaktionen grokking. Ich hoffe, dass jemand die magische Kombination kennt, damit ich nicht alle Möglichkeiten ausschöpfen muss.

Sollte ich einen anderen Layout-Container verwenden? Ich habe die Tabellen- oder Flow-Layout-Container noch nicht untersucht. Ich nahm an, dass sie die Dinge nur noch komplizierter machen würden.

Antwort

1

Sie können entweder Dock oder Anker dafür verwenden (aber nicht beide gleichzeitig).

  1. Usich Anker Sie die Kontrolle an die Grenze der Eltern angeben sollte konstanten Abstand haben, so:

    • Folder sollte Anker Set-Top + Bottom + Left
    • Version Eingang haben Anker haben sollte Set Top + Bottom + Links + Right
    • Container der Up Abschnitt sollte Anker oben + unten + rechts haben;
  2. Mit Dock:

    • Folder sollte Dock müssen links gesetzt;
    • Version Eingang sollte Dock haben auf Füllen und das erste Steuer in den Behälter gegeben sein sollte (rechts darauf klicken im Editor „Nach vorne“ end klicken)
    • Container des Up Abschnitt sollte Dock nach rechts gesetzt haben

Alternativ können Sie TableLayoutPanel verwenden - erste und letzte Spalte konstante Breite haben wird, wird die mittlere mit der Mutter strecken.

+0

"Bring to Front" scheint nicht den gewünschten Effekt zu haben, den Sie beschreiben. Ich muss den Anzeigenauftrag im Designer manuell ändern, damit die Steuerelemente in der richtigen Position andocken. Sowohl das Andocken als auch das Ankern scheinen unerwünschte Nebenwirkungen zu haben. Ich habe versucht, die Min- und Max-Größe einzuschließen, aber das macht den ganzen Zweck zunichte. Die richtige Antwort ist also das TableLayoutPanel. –

Verwandte Themen