unbekannte anzahl von textfeldern hinzufügen



  • ich mögchte gerne, sobald ich auf einen taste drücke ein neues test feld hinzufügen. bzw löschen.
    da ich noch nicht weiss wieviele es werden kann ich sie nicht vorher festlegen und einfach per visible = true und false ein bzw ausbleden.
    geht es irgend wie dass ich sobald ich auf den button drücke einfach ein neues feld erstellt wird?



  • Erstell dir ein neues Textfeld Objekt setzt alle benötigten Properties(vor allem die Location, da musste dir was überlegen das die neuen Textfelder nicht alle übereinander erscheinen) und dann fügst du das Textfeld deiner Control Collection der Form hinzu.



  • hab jetzt so gemacht

    System.Windows.Forms.TextBox box1;
    box1 = new System.Windows.Forms.TextBox();
    box1.Name = "textbox";
    box1.Text = "test";
    box1.Location = new System.Drawing.Point(20, 20);
    

    es will aber nicht so ganz. das die textbox existiert zwar, zumindest theoretisch. ich kann auch wert abrufen, was drin steht usw. problem ist nur, dass sie nicht zu sehen ist 😞



  • Hi!

    Ich hab jetzt keinen c#-Compiler hier, kann es also nicht testen.
    Erzeuge mal wie gewohnt ein Textfeld per Designer und mach ALLES,
    was der auch macht. Insbesondere musst du deine Textbox
    noch mit 'add' an einem Container anmelden.

    Jockel



  • Im Prinzip ist richtig wie du anfängst, aber musst halt nocht wie JockelX und auch ich schon erwähnt habe, den Button zu den Controls deiner Form hinzufügen.



  • okay danke dann werd ich das mal probieren.



  • okay soweit geht es jetzt. kann auch die felde wieder löschen. nur gibt jetzt noch ein problem. und zwar wie spreche ich die verschiedenen felder an. mit box1.blabla kann ich nur auf der zuletzte erstellte zugreifen. wenn ich den vergebenen name verwenden will kommt ein fehler, da dieser noch nicht bekannt ist. so sieht der code aus

    System.Windows.Forms.TextBox box1;
    box1 = new System.Windows.Forms.TextBox();
    box1.Name = "textbox"+y;
    box1.Text = "test";
    box1.Location = new System.Drawing.Point(20, x);
    Controls.Add(box1);
    x=x+20;				
    textbox0.Text = "bla"; //hier kommt der Fehler
    


  • okay soweit geht es jetzt. kann auch die felde wieder löschen. nur gibt jetzt noch ein problem. und zwar wie spreche ich die verschiedenen felder an. mit box1.blabla kann ich nur auf der zuletzte erstellte zugreifen. wenn ich den vergebenen name verwenden will kommt ein fehler, da dieser noch nicht bekannt ist. so sieht der code aus

    System.Windows.Forms.TextBox box1;
    box1 = new System.Windows.Forms.TextBox();
    box1.Name = "textbox"+y;
    box1.Text = "test";
    box1.Location = new System.Drawing.Point(20, x);
    Controls.Add(box1);
    x=x+20;				
    textbox0.Text = "bla"; //hier kommt der Fehler
    


  • okay soweit geht es jetzt. kann auch die felde wieder löschen. nur gibt jetzt noch ein problem. und zwar wie spreche ich die verschiedenen felder an. mit box1.blabla kann ich nur auf der zuletzte erstellte zugreifen. wenn ich den vergebenen name verwenden will kommt ein fehler, da dieser noch nicht bekannt ist. so sieht der code aus

    System.Windows.Forms.TextBox box1;
    box1 = new System.Windows.Forms.TextBox();
    box1.Name = "textbox"+y;
    box1.Text = "test";
    box1.Location = new System.Drawing.Point(20, x);
    Controls.Add(box1);
    x=x+20;				
    textbox0.Text = "bla"; //hier kommt der Fehler
    


  • sorry bekam immer nen datenbank fehler und es wurde dann wohl nicht gleich aktuallisiert angezeigt.


Anmelden zum Antworten