tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Turri
  • 1 Beitrag von Turri
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
375
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Trynfail Trynfail ist offline Rookie
    Registriert seit
    Feb 2012
    Ort
    Krefeld
    Beiträge
    8
    Hi,

    kann man auf irgendeine Art und Weise aus einem string eine TextBox machen? Umgekehrt ist das ja kein Problem mit textBox.ToString().

    Ich habe zimlich viele TextBoxen in meinem Programm, die von eins an durch nummeriert sind und auf die ich so oder so ähnlich zugreifen möchte.

    Code csharp:
    1
    2
    3
    4
    5
    
                for (int i = 1; i < 82; i++)
                {
                    string text = "textBox" + i;
                    ((TextBox)text).Enabled = true;
                }


    Das geht nur nicht, weil man einen string nicht in einen "System.Windows.Forms.TextBox" umwandeln kann.

    Ich denke (hoffe) mal, dass es auch eine Funktion gibt, mit der man dieses Problem beheben kann, die ich bisher einfach nur nicht gefunden habe.

    Wenn dem nicht so seien sollte, wäre ich auch gerne für Vorschläge offen, wie man mit dem Problem sonst umgehen sollte. Mal abgesehen von den 81 Zeilen Programmcode nur für das aktivieren der Boxen
     

  2. #2
    Avatar von Turri
    Turri Turri ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Hallo,

    ich habs jetzt selbst noch nie gebraucht, aber probier doch mal sowas.

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    for (int i = 1; i < 82; i++)
    {
        // finde alle Controls mit dem Name, der sollte natürlich eindeutig sein.
        Control[] tb = Controls.Find("textbox" + i, true);
        // dann wird er hoffentlich eines finden
        if (tb.Count() > 0 && tb[0] is TextBox)
        {
            TextBox b = (TextBox)tb[0];
            .... // mache was mit deiner Textbox
        }
    }
    Trynfail bedankt sich. 
    MfG Turri

    PS: Wenn ich helfen konnte, würde ich mich über ein Danke oder eine positive Bewertung freuen. :-)

  3. #3
    Trynfail Trynfail ist offline Rookie
    Registriert seit
    Feb 2012
    Ort
    Krefeld
    Beiträge
    8
    funktioniert =) sehr schön

    danke für die schnelle Antwort und auch die Erklärungen
     

  4. #4
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Trynfail: Bislang jeder, der mir begegnet ist und diese Funktionalität brauchte, programmiert erst seit Kurzem. Ich vermute daher, dass du auch Neu bei .Net-Pogrammierung bist?
    Mich würde interessieren, warum du diese Funktionalität benötigst. Denn ich vermute, dass es eine viel saubere Lösung für das eigentliche Problem gibt... Warum zum Beispiel benötigst du überhaupt 81 Textfelder?
     
    hihi = -h²

  5. #5
    Avatar von Turri
    Turri Turri ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Also ich hab mal nen Sudokulösealgorithmus programmiert mit 81 Buttons auf meinem WinForm
     
    MfG Turri

    PS: Wenn ich helfen konnte, würde ich mich über ein Danke oder eine positive Bewertung freuen. :-)

  6. #6
    Trynfail Trynfail ist offline Rookie
    Registriert seit
    Feb 2012
    Ort
    Krefeld
    Beiträge
    8
    Ja ich war in den letzten Tagen dabei mir mithilfe von ein paar Turtorials C# beizubringen und bin deswegen was manche Dinge angeht noch nicht ganz so fit . Das letzte halbe Jahr hatte ich an der Uni mit C programmiert, aber was die Fensterprogrammierung angeht ist mir das in C oder C++ zu umständlich. Deswegen jetzt C#.

    Es geht wie bei Turri um ein Sudokulöseprogramm. Dazu braucht man natürlich 81 Eingabefelder. Ob man das nun durch NumericUpDowns macht oder TextBoxen oder was auch immer spielt da ja nicht so die große Rolle.

    Die Funktion hab ich an folgenden Stellen verwendet:
    -Verhindern einer anderen Eingabe außer Zahlen zwischen 1 und 9;
    -Sperren des Feldes nach einer Eingabe;
    -Freigabe und Löschen aller Inhalte mit einem Löschen-Button;

    Wenn du eine komfortablere Lösung für das Problem hast, bin ich für Änderungsvorschläge gerne offen Shakie .
     

  7. #7
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo,

    ich denke da bietet sich die Verwendung eines Arrays von Textboxen an, über die du dann einfach über ihren Index zugreifen kannst. Vielleicht sogar ein zweidimensionales Array, über das du dann gleich die 2D-Spielfläche abbilden kannst.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  8. #8
    Trynfail Trynfail ist offline Rookie
    Registriert seit
    Feb 2012
    Ort
    Krefeld
    Beiträge
    8
    Hi MCoder,

    ich hatte das prizipielle Problem schonmal mit C bearbeitet und hab das dort mit einem 4-dimensionalen Array gemacht um die Zeilen, Spalten und Felder einfach bestimmen zu können.

    Ich hätte das auch gerne wieder so gemacht, wusste nur nicht wie

    Wie bekommt man denn die TextBoxen in Arrays? Ich habe sie im Moment in TableLayoutPanels. Die haben zwar auch eine "Cell" angabe, auf die kann man (oder nur ich ) nicht zugreifen.
     

  9. #9
    Avatar von Turri
    Turri Turri ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Als Liste...
    Code csharp:
    1
    2
    3
    4
    
    List<TextBox> textboxen = new List<TextBox>();
    ...
    textboxen.Add(textbox1);
    ...
    Als Array...
    Code csharp:
    1
    2
    3
    4
    
    TextBox[] textboxen = new TextBox[81];
    textboxen[0] = textbox1;
    textboxen[1] = textbox2;
    ...

    Das gilt natürlich für den Codeteil, um die TextBoxen immer durchgehen zu können.
    Das du die Textboxen auf der Form in irgendwelchen Layouts hast ist eine andere Sache.
    Trynfail bedankt sich. 
    MfG Turri

    PS: Wenn ich helfen konnte, würde ich mich über ein Danke oder eine positive Bewertung freuen. :-)

  10. #10
    Trynfail Trynfail ist offline Rookie
    Registriert seit
    Feb 2012
    Ort
    Krefeld
    Beiträge
    8
    Ah ok -.-"

    Ja ich muss mich erst noch nen bisschen nan die Sprach gewöhnen...

    Ich wusste nicht, dass man sich einfach TextBox[] basteln kann.

    Aber gut zu wissen, danke

    Ich dachte nur man würde das im Layout schon regeln, dass man das ähnlich wie die Position eben z.B über die Zelle des Lables bestimmen könnte.
     

  11. #11
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo,

    ich persönlich würde hier den Designer sogar außen vor lassen und die 81 Textboxen gleich im Code und in einer Schleife erzeugen und ins Array packen. Das TableLayout kann man ja da auch benutzen.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

Ähnliche Themen

  1. [C++] textBox in String
    Von sub7even im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 04.10.08, 23:33
  2. Bestimmten Teil von String in Textbox anzeigen
    Von scyzo im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 11.03.08, 15:41
  3. String in TextBox schreiben
    Von Manii im Forum Visual Basic 6.0
    Antworten: 10
    Letzter Beitrag: 17.07.07, 15:42
  4. string einlesen und in Textbox ausgeben
    Von Dorschty im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 17.07.07, 14:09
  5. String in Textbox entfernen
    Von D@nger im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 08.02.06, 14:56