Control zur Laufzeit austauschen

zarrandreas

Mitglied
Ich möchte ein Contol durch ein anderes ersetzen und das zur Laufzeit des Programms

z.B:
ich habe eine Form und diese enthält Label1 und Label2, ausserdem ein Button
Wenn ich auf den Button klicke, dann möchte ich Label1 mit Label 2 ersetzen.

Wie geht so etwas?
 
Hi,

Mit einem kurzen Blick auf die Properties von Control (oder Label) wäre dir das Property "Visible" aufgefallen, auf gut deutsch: sichtbar.
Mit einem genialen Geistesblitz käme man auf die idee, das eine Label auf unsichtbar zu setzen und das andere auf sichtbar. ;)

//EDIT:
verstehe nur den Sinn nicht ganz. Normalerweise sollte es doch reichen, den Text neu zusetzen oder?
 
Zuletzt bearbeitet:
Es geht um Stratagie Pattern,

Man ersetzt die Componenten zur Laufzeit

ich habe z.B. ein TreeView mit vielen verschiedenen Nodes, diese möchte ich nacheinander in einem Fenster ansehen
Jeder Node hat ein bestimtes Control, das dieses representiert

Wenn ich ein Node wähle, muss ich Control von dem Hauptfenster mit dem Node Control ersetzen.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
Hallo zarrandreas!

Du kannst die Controls in dem Node.Tag Property unterbringen.
Im TreeView.BeforeSelect Event löschst das aktuelle Control aus der ControlCollection des Controls,
in dem es sich befindet und fügst das neue hinzu.
Code:
using System.Windows.Forms;

controlTreeView_BeforeSelect( object sender, TreeViewCancelEventArgs e ) {
	containerControl.Controls.Clear();
	containerControl.Controls.Add( e.Node.Tag );
}
MfG, cosmo
 

Neue Beiträge

Zurück