Benutzer mit den meisten Antworten
Abfragen verschiedener Textbox-Elemente anhand zusammengesetzter Bezeichner

Frage
-
Hallo,
ich habe verschiedene Textboxes, die ich später in einer for...next-Schleife abfragen möchte. Dazu muss ich in jedem Schleifendurchlauf als String-Quelle die entsprechende TextBox bestimmen:
Absatz1Durchmesser.text="10" ' Textbox Absatz2Durchmesser.text="20" ' Textbox for i=1 to 2 quelle="Absatz" & i & "Durchmesser" ' String-Quelle msgbox(quelle.txt) next i
Bisher habe ich leider keine funktionierende Lösung gefunden...ich würde mich über Tipps freuen...
Antworten
Alle Antworten
-
Uihh, hab's selbst geschafft :o) FREU FREU
Super.
Wäre es möglich, die Lösung dann auch noch zu posten? Dann haben andere auch noch was davon.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
OK, sorry.
Die abzufragende TextBox definiere ich in jedem For...next-Durchlauf mithilfe der Funktion "Controls.Find" und der Verkettung der einzelnen TextBox-Namensbestandteile und der Schleifenvariablen "i":
QuelleMaß = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "Durchmesser", True)
Dabei ist wichtig, dass diese Funktion ein Array ausgibt, d. h. das Control-Object (hier "QuelleMaß" und "QuellePassung") muss immer mit dem Index 0 ("QuelleMaß(0).text") abgefragt werden. Hat etwas gedauert, bis ich das herausgefunden habe...
' Achsansätze Festlagerseite Dim QuelleMaß() As Control 'TextBoxAchseFestlagerAbsatz1Durchmesser Dim QuellePassung() As Control For i = 1 To 5 If i <= CInt(ComboBoxAchseFestlagerAnsätze.Text) Then ' Absatzdurchmesser HINTER Einstich (falls Einstich vorhanden) QuelleMaß = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "Durchmesser", True) ' TextBoxAchseFestlagerAbsatz1Durchmesser QuellePassung = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "DurchmesserPassung", True) ' TextBoxAchseFestlagerAbsatz1DurchmesserPassung BemaßungD(sender, e, _ New PointF(-pAchsStirnfläche(i - 1).X, -pAchsStirnfläche(i).Y), _ New PointF(-pAchsStirnfläche(i - 1).X, pAchsStirnfläche(i).Y), _ 180, _ 6, _ QuelleMaß(0).Text, _ QuellePassung(0).Text, _ -18) ' AbsatzTiefe QuelleMaß = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "Tiefe", True) ' TextBoxAchseFestlagerAbsatz1Tiefe QuellePassung = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "TiefePassung", True) ' TextBoxAchseFestlagerAbsatz1TiefePassung BemaßungL(sender, e, _ New PointF(pAchsStirnflächeFest.X, pAchsStirnflächeFest.Y), _ New PointF(-pAchsStirnfläche(i - 1).X, pAchsStirnfläche(i - 1).Y), _ 65 - i * 7.5, _ QuelleMaß(0).Text, _ QuellePassung(0).Text, _ 0) ' Einstichtiefe QuelleMaß = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "Einstichmaß", True) ' TextBoxAchseFestlagerAbsatz1EinstichMaß QuellePassung = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "EinstichmaßToleranz", True) ' TextBoxAchseFestlagerAbsatz1EinstichMaßToleranz If Not QuelleMaß(0).Text = "" Then ' Einstichbemaßung, falls Einstich eingetragen BemaßungL(sender, e, _ New PointF(-pAchsStirnfläche(i).X + 2, pAchsStirnfläche(i).Y), _ New PointF(-pAchsStirnfläche(i - 1).X, pAchsStirnfläche(i - 1).Y), _ 65 - 7.5 - i * 7.5, _ QuelleMaß(0).Text, _ QuellePassung(0).Text, _ 0) ' Absatzdurchmesser VOR Einstich QuelleMaß = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "Durchmesser", True) ' TextBoxAchseFestlagerAbsatz1Durchmesser QuellePassung = Controls.Find("TextBoxAchseFestlagerAbsatz" & i & "Schiebepassung", True) ' TextBoxAchseFestlagerAbsatz1Schiebepassung BemaßungD(sender, e, _ New PointF(-pAchsStirnfläche(i).X, pAchsStirnfläche(i).Y), _ New PointF(-pAchsStirnfläche(i).X, -pAchsStirnfläche(i).Y), _ 180, _ 1.5, _ QuelleMaß(0).Text, _ QuellePassung(0).Text, _ -15) End If