Bei Programmstart durch geöffnetes Textfenster eine variable deklarieren

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ehrmmst.

    Bei Programmstart durch geöffnetes Textfenster eine variable deklarieren

    Hi,

    Beim Start meines programmes soll zunächst ein Fenster aufgehen in dem man eine Zahl eingeben muss (z.B. Anzahl der Spalten).

    Wie kann ich einen Sub starten der mir beim Programmstart ein fenster öffnet (kann auch ein Panel mit Textboxen sein) wo nun eine Zahl eingegeben werden kann, diese wird dann natürlich als variable gespeichert.

    Sorry, hab jetz schon einige Einträge aus dem Forum umgeschrieben (Code), bekomms aber nicht hin.



    MFG :)
    Mach Dir einen Dialog mit einer TextBox, die nur Zahlen zulässt (findest Du hier im Forum).
    Wenn der Dialog geschlossen wird, liest Du die Zahl aus.

    VB.NET-Quellcode

    1. Dim Anzahl = 0 ' Vorgabe
    2. Using dlg As New FormX
    3. If dlg.ShowDialog = DialogResult.OK Then
    4. Anzahl = dlg.GetAnzahl ' Property in FormX
    5. End If
    6. End Using
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für deine Antwort, ich habs zwar ein bisschen anders gemacht, aber es klappt ganz gut.

    Wusste, da Anfänger, leider nicht dass ich erst ne neue Form designen muss. Hat mich also ein bisschen arbeit gekostet - Learning bei doing hald.



    Jetzt hätte ich noch eine Frage

    Ich hab jetzt eine eingebene Zahl, also Variable.

    In Abhänigkeit dieser möchte ich nun Textboxen erstellen. Habs wie im Code zu sehen gemacht, Fehlermeldung kommt auch keine. Klingt eigentlich ganz gut- Machen tut er aber nicht das was ich will.

    VB.NET-Quellcode

    1. Dim Windungsanzahl As Integer
    2. Windungsanzahl = f2.TextBox1.Text 'Wert den man vorher in das aufgehende Fenster eingeben hat
    3. Dim tb1 As New TextBox()
    4. For i = 1 To Windungsanzahl ´
    5. tb1.Location = New Point(20 + ((10*i - 1) Mod 6), 10 + ((10*i - 1) \ 6)) Me.Controls.Add(tb1)
    6. Next
    7.  


    Was mache ich falsch?
    ´mfg
    Probier mal dies:

    VB.NET-Quellcode

    1. For i = 1 To Windungsanzahl ´
    2. Dim tb1 As New TextBox() ' in die Schleife rein
    3. tb1.Location = New Point(20 + ((10*i - 1) Mod 6), 10 + ((10*i - 1) \ 6)) Me.Controls.Add(tb1)
    4. Next
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke, habe tatsächlich den Fehler schon selbst entdeckt, ungefähr 1 ms bevor du geschrieben hast =)

    Ich hätte es jetzt so gemacht:



    VB.NET-Quellcode

    1. Dim Textboxen24 As New TextBox()
    2. For i = 1 To Windungsanzahl
    3. Dim Textboxen24 As String = (Me.Controls.Add("TextBox" & i.ToString)),TextBox) 'HIER IST DER FEHLER
    4. Textboxen24.Location = New Point(10 * i, 10 * i)
    5. Me.Controls.Add(Textboxen24)
    6. Next






    Er sagt mir dass eine ("end of") Anweisung erwartet würde.
    Bitte entschuldigt, ich habe zweimal das selbe deklariert, ist mir dann auch aufgefallen.



    VB.NET-Quellcode

    1. For i = 1 To Windungsanzahl
    2. Dim Textboxen24 As String = ("TextBox" & i.ToString)
    3. Dim TextBox As New TextBox()
    4. TextBox.Name = Textboxen24
    5. TextBox.Location = New Point(10 * i, 10 * i)
    6. Me.Controls.Add(TextBox)
    7. Next


    So funktionierts



    Nun die Frage: Ich hab ja jetzt eigentlich Textbox1 bis Textbox (je nach Anzahl), erstellt.

    diese sind ja eigentlich schon vergeben, also die gibts ja eigentlich schon.

    kann ich auf diese textboxen dann eigentlich zugreifen, nachdem ich sie erstellt habe?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ehrmmst“ ()

    VB.NET-Quellcode

    1. TextBox.Name = Textboxen24 & i.ToString
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Private Windungszahl As Integer
    2. Sub S1
    3. Windungszahl = 5
    4. End Sub
    5. Sub S2
    6. For i = 0 To Windungszahl
    7. Next i
    8. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!