2Danke
ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
375
375
EMPFEHLEN
-
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
-
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 } }
MfG Turri
PS: Wenn ich helfen konnte, würde ich mich über ein Danke oder eine positive Bewertung freuen. :-)
-
funktioniert =) sehr schön
danke für die schnelle Antwort und auch die Erklärungen
-
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²
-
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. :-)
-
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
.
-
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
-
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.
-
Als Liste...
Als Array...Code csharp:1 2 3 4
List<TextBox> textboxen = new List<TextBox>(); ... textboxen.Add(textbox1); ...
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.MfG Turri
PS: Wenn ich helfen konnte, würde ich mich über ein Danke oder eine positive Bewertung freuen. :-)
-
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.
-
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
-
[C++] textBox in String
Von sub7even im Forum C/C++Antworten: 6Letzter Beitrag: 04.10.08, 23:33 -
Bestimmten Teil von String in Textbox anzeigen
Von scyzo im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 11.03.08, 15:41 -
String in TextBox schreiben
Von Manii im Forum Visual Basic 6.0Antworten: 10Letzter Beitrag: 17.07.07, 15:42 -
string einlesen und in Textbox ausgeben
Von Dorschty im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 17.07.07, 14:09 -
String in Textbox entfernen
Von D@nger im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 08.02.06, 14:56





Zitieren
Login





