Was ist der Unterschied zwischen einem Benutzersteuerelement und einem Windows-Formular in Visual Studio - C#?User Control im Vergleich zu Windows Form
Antwort
sehr Vereinfacht gesagt:
Bedienelemente ein Weg, um eine benutzerdefinierte sind, wiederverwendbare Komponente. Ein Benutzersteuerelement kann andere Steuerelemente enthalten, muss jedoch von einem Formular gehostet werden.
Windows-Formulare sind der Container für Steuerelemente, einschließlich Benutzersteuerelementen. Obwohl es viele ähnliche Attribute wie ein Benutzersteuerelement enthält, besteht der Hauptzweck darin, Steuerelemente zu hosten.
Ein Windows-Formular ist ein Container für Benutzersteuerelemente.
so ist eine Benutzerkontrolle! –
Wie fügst du ein Formular in eine Benutzerkontrolle ein? – Fredou
können Sie nicht, aber Sie können sicher ein Benutzersteuerelement in ein Benutzersteuerelement versetzen. –
Sie haben einen viele gemeinsam, sie beide von Containern ableiten. UserControl ist jedoch als untergeordnetes Fenster gedacht und muss in einem Container platziert werden. Form wurde entwickelt, um ein Top-Level-Fenster ohne ein Elternteil zu sein.
Sie können durch Einstellen seiner TopLevel Eigenschaft auf false ein Formular in ein Kind Fenster tatsächlich drehen:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
var child = new Form2();
child.TopLevel = false;
child.Location = new Point(10, 5);
child.Size = new Size(100, 100);
child.BackColor = Color.Yellow;
child.FormBorderStyle = FormBorderStyle.None;
child.Visible = true;
this.Controls.Add(child);
}
}
Aber du solltest es wirklich vermeiden, IMO. :) –
Es gibt ein kleines bisschen Speicher, den Sie unnötig verwenden werden, sehr kleine Erdnüsse im Vergleich zu den Kosten der Control-Klasse und vor allem des nativen Fensters. Es wäre für Microsoft sehr einfach gewesen, die TopLevel-Eigenschaft nicht verfügbar zu machen. Das Feature ist nur dunkel, die Verwendung ist in Ordnung. –
Ich glaube, ich sprach vom Standpunkt der Klarheit und Zusammensetzung des Codes. Sicher, du kannst das, und sicher, es wird unterstützt, aber ich denke, mein Punkt war, dieses gute Beispiel nicht als Designmuster zu nehmen :) –
Der größte Unterschied form.show ist ergibt sich ein anderes Fenster, während Usercontrol doesnt wie Feature haben, ohne dass ein Aufspringen Elternteil. Die restlichen Dinge sind in beiden Steuerelementen gleich, wie von Scrollablecontrol abgeleitet.
- 1. Punkt-freier Form im Vergleich zu Stil
- 2. Kann Kontrollen in User Control im VisualTreeHelper
- 3. Umbraco: Backend User Control
- 4. etwas benötigt Schaltfläche Akzeptieren in User Control
- 5. User Control mit Eingangsparameter
- 6. Panel Control Paint Event funktioniert nicht für User Control
- 7. WPF User Control Parent
- 8. User Control Ereignisse
- 9. User Control Inside Repeater
- 10. ASP.NET Ajax Control Kit im Vergleich zu JQuery
- 11. WPF User Control XAML Bindung
- 12. Windows-Dienst im Vergleich zu Windows Workflow Foundation?
- 13. User Control Inhalt nicht Rendering
- 14. req.locals im Vergleich zu res.locals im Vergleich zu res.data im Vergleich zu req.data im Vergleich zu app.locals in Express-Middleware
- 15. App.Config im Vergleich zu AppName.exe.Config
- 16. User Control wird nicht im Fenster aktualisiert (WPF)
- 17. C# Form Control Move
- 18. Binäre Serialisierung im Vergleich zu JSON im Vergleich zu xml
- 19. DockPanel und User Control UI mit Ribbon Control
- 20. Geb Form-Control Shortcuts - Howto
- 21. GeneXus - Container User Control + Abstract Layout
- 22. Zugriff auf Elemente eines User Control
- 23. User Control, Delegate und UpdatePanel Problem
- 24. WPF - Bindung in einfachen User Control
- 25. User Control geerbt von Schaltfläche in WPF
- 26. ASP.NET User Control Teilweise Caching durch Variablenwerte
- 27. Javascript Funktionen in ASP.NET User Control
- 28. ASP.Net User Control Hover verursacht Klick
- 29. ASP.NET MVC View User Control - wie IDs zu setzen?
- 30. HTML Form Control Line Break
Kann der Benutzer andere Benutzersteuerelemente steuern (enthalten)? –
@RobertNiestroj ja können sie. – LxL