zelamedia
Goto Top

C-Sharp, Codeabschnitt per button.klick generieren

Hallo an alle, Hoffe ihr habt Verständnis falls meine frage etwas komisch rüber kommt bin noch ziemlich am Anfang.


Also ich habe in C# einen Codeabschnitt, Es beinhaltet einige Sachen wie Label,Textfelder und WebBrowser ist eigentlich auch nicht so wichtig! Was ich eigentlich will ist das ich im fertigen c# Programm Einen Button habe wenn jemand darauf klickt wird der selbe Codeabschnitt darunter erzeugt, also nochmal Label,Textfelder und WebBrowser neben dem bereits bestehenden.

Button kriege ich noch hin doch mir fehlt jeglicher Fachbegriff nachdem ich auch nur ansatzweise suchen könnte um mich zu informieren, weis jemand wie ich so etwas schnell hinbekommen?

bool condition = true;

if (condition) Also hier vermute ich Button Click
{
Console.WriteLine("Label,Textfelder und WebBrowser");
Also hier hinein vielleicht der Codeabschnitt
}
else
{
Console.WriteLine("The variable is set to false.");
}


Ich weis natürlich nicht ob ich auch nur ansatzweise in die Richtige Richtung Denke, hoffe es kann mir jemand weiterhelfen. Vielen Dank

Content-Key: 377416

Url: https://administrator.de/contentid/377416

Printed on: April 24, 2024 at 20:04 o'clock

Member: Thomas2
Thomas2 Jun 18, 2018 at 14:19:40 (UTC)
Goto Top
Hi,

du kopierst eben deinen ganzen Code, der die Elemente erzeugt in dein "Knopf wurde gedrückt-Event" und passt die Koordinaten und Bezeichner an.

Gruß,
Thomas
Member: wiesi200
wiesi200 Jun 18, 2018 at 14:19:40 (UTC)
Goto Top
Hallo,

hast du jetzt eine Konsolen Anwendung (der Befehl Console.WriteLine) oder eine Form?
Member: wiesi200
wiesi200 Jun 18, 2018 at 14:21:39 (UTC)
Goto Top
Zitat von @Thomas2:

Hi,

du kopierst eben deinen ganzen Code, der die Elemente erzeugt in dein "Knopf wurde gedrückt-Event" und passt die Koordinaten und Bezeichner an.

Die Frage ist ob ein Benutzerdefinierte Steuerelement nicht besser ist das ich dann mehrmals einbinde.
Member: zelamedia
zelamedia Jun 18, 2018 at 14:25:22 (UTC)
Goto Top
WindowsForm Anwendung
Member: emeriks
emeriks Jun 18, 2018 at 14:28:05 (UTC)
Goto Top
Hi,
kann es sein, dass Du gar nicht den Code erneut haben willst, sondern dass einfach weitere Steuerelemente (Label,Textfelder und WebBrowser) erscheinen, mit denen man dann im Formualr arbeiten kann? So wie "neuer Datensatz" oder so?

Alles andere scheint mir keinen Sinn zumachen. Dann müsste man verstehen, dass Du aus dem laufenden (kompilierten) Programm heraus den Quelltext desselben ändern willst. Wahrscheinlich damit dieser auch gleich wieder ausgeführt werden kann. Wann ja - sowas geht nur mit zur Laufzeit interpretierenden Sprachen bzw. mit den dazugehörigen Interpretern. Alles was vorher kompiliert, sei es nun einmalig vor Ausführung oder jedes Mal vor Ausführung (letzteres z.B. bei VBScript), kannst Du vergessen.

E.
Member: zelamedia
zelamedia Jun 18, 2018 at 14:33:11 (UTC)
Goto Top
@emeriks Ja sie sollen im Programm neu Erscheinen und man soll mit denen eigenständig arbeiten können. Wie das jetzt im Hintergrund abläuft kann ich mir noch nicht vorstellen ob ein neuer code nötig ist oder nicht kann ich leider nicht beantworten.
Member: Friemler
Friemler Jun 18, 2018 at 14:38:14 (UTC)
Goto Top
Hallo zelamedia,

falls Du meinst, dass die genannten Steuerelemente nochmals in der Bedienoberfläche erscheinen - Du musst die Steuerelemente zur Laufzeit erzeugen und in die Oberfläche integrieren (Parent-Control und Bildschirmkoordinaten setzen, sichtbar schalten, usw.). So macht man das jedenfalls in Delphi, sollte in .Net Programmen wohl auch funktionieren.

Gruß
Friemler
Member: colinardo
colinardo Jun 18, 2018 updated at 14:41:33 (UTC)
Goto Top
Servus.

Entweder du clonst die Steuerelemente alle einzeln zur Laufzeit (aufwendig und nicht zeitgemäß) oder erstellst dir stattdessen ein User-Control mit anpassbaren Eigenschaften.
Creating a Windows Form User Control

Grüße Uwe
Member: zelamedia
zelamedia Jun 18, 2018 at 14:52:32 (UTC)
Goto Top
Vielen Dank für eure Hilfe, Werde versuchen eure tipps umzusetzen. Vielleicht schaffe ich es ja noch heute. Lg