Forum: PC-Programmierung Bei Button Klick eine Zeile ergänzen


von Leon E. (adiagi)


Angehängte Dateien:

Lesenswert?

Hi Leute,

ich habe in einer Form zwei Richtextboxes und einen Button.
Ist es möglich beim Kliock des Buttons zwei Richtextboxes hinzuzufügen.
Also wenn ich auf button klick. erscheint eine weitere Zeile mit " 
Richtextboxes. und so weiter jedes mal wenn ich klick wird also die 
obige zeiel kopert und eien weitere eingefügt?

Vielen Dank

Gruß

Agi

von Karl H. (kbuchegg)


Lesenswert?

Möglich ist das sicher (in welcher Sprache eigentlich?).

Aber die eigentliche Frage lautet: Hast du da nicht eigentlich das 
falsche GUI Konzept?

Ich denke du wärst zb mit einem ListControl oder einem Grid sehr viel 
besser bedient, welches auf Anforderung (durch den Buttondruck) eine 
Zeile mehr anzeigt und zur Bearbeitung freigibt.

Einzelne GUI Elemente haben bestimmte typische Einsatzbereiche und lösen 
bstimmte Bedien'probleme'. Verwendet man das falsche GUI Element für den 
falschen Zweck, kommen im Regelfall Programme heraus, die furchtbar zu 
bedienen sind, die fehleranfälig zu bedienen sind und die kein Mensch 
freiwillig benutzen will.

Du hast einen umfangreichen Satz an Bedienelementen zur Verfügung. Lerne 
damit umzugehen.

von Peter II (Gast)


Lesenswert?

> Ist es möglich beim Kliock des Buttons zwei Richtextboxes hinzuzufügen.
ja.

Dafür muss du sie dynamisch anlegen.

Goolge solte bei "c# dynamische controls" genug liefern.

von Leon E. (adiagi)


Angehängte Dateien:

Lesenswert?

Karl Heinz Buchegger schrieb:
> Ich denke du wärst zb mit einem ListControl oder einem Grid sehr viel
> besser bedient, welches auf Anforderung (durch den Buttondruck) eine
> Zeile mehr anzeigt und zur Bearbeitung freigibt.

Ich meinte, dass zwei neue richtextboxes erscheinen sollen und nicht die 
vorhandenen erweitern. ( siehe Anhang aus Bild 1 soll bild 2 werden bei 
3 maligen klicken des Buttons)

Gruß

Agit

von Leon E. (adiagi)


Lesenswert?

Hi,

habs hinbekommen, dass sie zur laufzeit erzeugt und gelöscht werden.
Nunmuss ich sie nur noch anpassen.

danke für die Tipps.

Gruß

Agit

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Agit A. schrieb:
> habs hinbekommen, dass sie zur laufzeit erzeugt und gelöscht werden.

und wie lautet deine Lösung?

[Nur Infos abgreifen wollen, ohne selbst Infos beizusteuern, ist 
unschick]

von Leon E. (adiagi)


Lesenswert?

Hi,

ja klar sry.
also hab eigentlich net viel aber hier mal der Codeausschnitt.

private void button2_Click(object sender, EventArgs e)
{


            RichTextBox Knopf = new RichTextBox();
            Knopf = new RichTextBox();
            Knopf.Location = new Point(33,75);
            Knopf.Width = 138;
            Knopf.Height = 34;
            Controls.Add(Knopf);
}

Is halt noch nicht wirklich nützlich. zwar wird eine textbox zur 
laufzeit erstellt. Aber mit der Anpassung habe ich noch Probleme.
Will es so haben das bei jedem Klick eine Textbox erzeugt wird und zwar 
genau unter der vorherig erzeugten.
In diesem Fall bekomm ich eine Textbox und dann wars des.

Vlt hat ja einer von euch noch ideen.

Gruß Agit

von Peter II (Gast)


Lesenswert?

Agit A. schrieb:
> ja klar sry.
> also hab eigentlich net viel aber hier mal der Codeausschnitt.

dumm nur das du jetzt keinen (sinnvollen) zugriff mehr auf das Kontrol 
hast. Du solltest die Referenz in einer Variable (array,list) ablegen.

von Leon E. (adiagi)


Lesenswert?

HI Peter,


Peter II schrieb:
> dumm nur das du jetzt keinen (sinnvollen) zugriff mehr auf das Kontrol
> hast
Wieso?

Peter II schrieb:
> Du solltest die Referenz in einer Variable (array,list) ablegen.

Wie soll das gehen?

Gruß
Agit

von Peter II (Gast)


Lesenswert?

Agit A. schrieb:
> Peter II schrieb:
>> dumm nur das du jetzt keinen (sinnvollen) zugriff mehr auf das Kontrol
>> hast
> Wieso?

na wie willst du dann an den Inhalt rankommen, du hast ja gar keine 
Variabel mehr?

Peter II schrieb:
> > Du solltest die Referenz in einer Variable (array,list) ablegen.
> Wie soll das gehen?
du braucht eine globale Liste wo du speicherst welche controls du 
angelegt hast, damit kann man dann auch darauf zugreifen.

(ja ich weiss man kann die controls auch im Form finden, aber schön ist 
das nicht)

von Karl H. (kbuchegg)


Lesenswert?

Agit A. schrieb:
> Karl Heinz Buchegger schrieb:
>> Ich denke du wärst zb mit einem ListControl oder einem Grid sehr viel
>> besser bedient, welches auf Anforderung (durch den Buttondruck) eine
>> Zeile mehr anzeigt und zur Bearbeitung freigibt.
>
> Ich meinte, dass zwei neue richtextboxes erscheinen sollen und nicht die
> vorhandenen erweitern. ( siehe Anhang aus Bild 1 soll bild 2 werden bei
> 3 maligen klicken des Buttons)

Das war mir schon klar.
Und genau das halte ich ehrlich gesagt nicht für ein besonders gutes 
GUI-Design. Was machst du, wenn du 100 derartige 'Zeilen' brauchst? Oder 
wenn du eine ganz spezielle derartige 'Zeile' wieder rauslöschen musst?

von Leon E. (adiagi)


Lesenswert?

Hi Karl,



Karl Heinz Buchegger schrieb:
> Was machst du, wenn du 100 derartige 'Zeilen' brauchst

die sind beschränk auf maximal 10 Zeilen.

Gruß

Agit

von Leon E. (adiagi)


Lesenswert?

hi,

hab entschieden es mit einem User Control zu machen.
Ich mach ein User Control mit 2 Text Boxes und einem Button.

So kann ich einfach ein neues usercontrol erzeugen, ohne jedes element 
neu zu erzeugen.

Gruß

Agit

von Leon E. (adiagi)


Lesenswert?

hi Leute,


sry dass ich euch nerve ( bin halt nicht so gut ).

hab jetzt das UserContol erstellt und in Forms eingefügt.
habe zusätzlich einen Button fürs Löschen des UserControl geht auch.
Nun hab ich button wo ich das gleiche Usercontrol kopieren will und 
drunter platzieren. je nachdem wie oft ich klicke soll ein zusätzliches 
UserControl hinzugefügt werden.

Hab es mit Add versucht, aber da wird mein eigentliches USer Control nur 
verschoben und nicht neu erzeugt.

gibt es ne methode um Elemente zu kopieren und dann an einer neuen 
Location zu platzieren ?

vielen Dank

Gruß
Agit

von Borislav B. (boris_b)


Lesenswert?

Nein, gibt es nicht. Das musst du dir selber schreiben...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.