Ich würde die Verwendung der Control.Dock
Eigenschaft zusammen mit einer der DockStyle
Enumeration Werte betrachten.
Möglicherweise müssen Sie auch mit der Layout
spielen, so dass Sie die Steuerelemente Ihres Formulars abhängig von der ausgewählten DockStyle
unterschiedlich formatieren können.
Sie müssen meiner Meinung nach die Control.Location
Eigenschaft in Betracht ziehen, so dass Sie wissen, welcher Wert DockStyle
Ihr Formular mit zu docken.
EDIT # 1
Ihr Windows Form hat eine Dock
Eigenschaft, wie es von Control
erbt.
Jedes Mal, wenn Ihr Formular kommt näher an den rechten Seite des Bildschirms, zum Beispiel, oder die MDI-Container, Sie mögen sie andocken, rechts:
die folgende seien in Betracht ziehen? (Kleines Wort hier spielen ... = P) Also, Sie müssen das Control.LocationChanged
Event abonnieren.
private void myForm_LocationChanged(object sender, EventArgs e) {
if (this.Location.X > 900) then
this.Dock = DockStyle.Right;
else if (this.Location.X < 150) then
this.Dock = DockStyle.Left;
else if (this.Location.Y > 600) then
this.Dock = DockStyle.Bottom;
else if (this.Location.Y < 150) then
this.Dock = DockStyle.Top;
else
this.Dock = DockStyle.None;
}
Tat anstelle von konstanten Werten, sollten Sie die aktuelle Desktop-Auflösung verwenden und ein Verhältnis von ihm zu berechnen, wo Sie Ihr Docking auftreten sollen.
*** Haftungsausschluss: **** Dieser Code wird zur Verfügung gestellt und wurde nicht getestet. Dieser Algorithmus ist hoffentlich genug, um Sie durch den Docking-Prozess zu führen, wie Sie es brauchen. Weitere Unterstützung kann auf Anfrage mitgebracht werden. * =)
Es scheint, dass die Eigenschaft Form.DesktopLocation
das richtige Werkzeug für den Job ist, wie für Ihr Hauptfenster, zum Beispiel Ihren MDI-Container. Was die anderen Fenster anbelangt, würde ich etwas mitnehmen, das wie das mitgelieferte Codebeispiel aussieht.
Hilft das?
EDIT # 2
Wenn Sie Formular überlappend, vielleicht die Control.BringToFront()
Methode konnte es vor oder nach dem Aufruf der Control.Show()
Methode, je nach verhindern, was für Sie am besten funktioniert.
hallo, danke für die Antwort festlegen können Sie die Benutzer-Optionen wollen wegzunehmen. Ich bin ein wenig neu zu den umfangreichen Funktionen von Visual Studio 2008 und ich weiß nicht, wie ich die Control.Dock-Eigenschaft verwenden kann. Können Sie mir bitte einige Beispiele geben, wie ich diese Eigenschaften nutzen kann? Danke :) – Smiley
Das ist zum Andocken Kontrollen in einem Formular, nicht zum Andocken des gesamten Formulars. –
@Jouke Van Der Maas: Ich denke du hast meine Antwort nicht gelesen. Ich erwähne die Eigenschaft 'DesktopLocation', also das gesamte Fenster auf dem Desktop anzudocken. Außerdem schlage ich vor, dass dies ein besseres Werkzeug für den Job sein könnte, nachdem das OP seine Idee präzisiert hat. Bitte überarbeiten Sie Ihren Kommentar entsprechend. –