InputBox

Status
Niet open voor verdere reacties.

Pim15

Gebruiker
Lid geworden
18 mrt 2012
Berichten
257
Ik heb een InputBox waarbij als je op OK drukt het programma een tab maakt in een TabControl met de naam die net is ingevoerd bij het tekst vak. Maar als je op Annuleren drukt moet de InputBox sluiten en niks meer doen. Als er nul tekens in het tekst vak en je drukt op OK zijn moet er een MsBox te voorschijn komen die zegt dat er minsten 1 teken in moet staan. Maar met de code die ik heb gebeurt er als je op Annuleren drukt het volgende: er wordt alsnog een tab aangemaakt in de TabControl, maar dan zonder naam, ook als je wel wat in het tekst vak invoert. Als je niks in vult in het tekst vak en op OK drukt wordt er ook een tab aangemaakt. Wat doe ik fout? Ik heb de volgende code:
Code:
Private Sub TabpaginaToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TabpaginaToolStripMenuItem.Click
        Dim a As Object
        a = InputBox("Naam voor het tabblad", "Naam")
        If vbOK And a = "" Then MsgBox("De naam van het tabblad moet minstens 1 teken bevatten.", vbExclamation, "Te weinig tekens")
        If vbOK Then TabControl1.TabPages.Add(a)
    End Sub
 
Hoi,

vbOK is niet afhankelijk van de inputbox. Je zou dit kunnen doen:
[CPP] Dim Input As String = InputBox("Wat is je naam?")

If Input = "" Then
MsgBox("Te weinig tekens")
Else
TabControl1.TabPages.Add(a)
End If[/CPP]

Maar ook als je op annuleren drukt wordt de code uitgevoerd (alleen die van de msgbox). Ik zal nog even rondkijken op internet of er nog iemand iets voor heeft bedacht, maar anders zal je er een apart form voor moeten aanmaken...

MartinJM

[edit]
Op internet verder alleen nog maar dingen gevonden die ook niet werkten. En de suggestie om er zelf een te maken...
[/edit]
 
Laatst bewerkt:
Doe het eens zo:

Code:
Dim knop As Integer
Dim Tabnaam As String = InputBox("Naam voor nieuwe tab: ")

    If Tabnaam = "" Then
        MsgBox ("Te weinig tekens")
    Else
        knop = MsgBox("Tab met naam " & Tabnaam & " aanmaken?", vbOKCancel)
        If knop = vbOK Then TabControl1.TabPages.Add (a)
    End If
 
Laatst bewerkt:
Volgens de manier van Edmoor werkt het. Maar als je bij de MsgBox met vraag op Annuleren drukt gaat het alsnog door. Ik ben nu nog even aan het sleutelen.
Pim

EDIT: Zo werkt het wel
Code:
Dim Tabnaam As String
        Dim Knop As Integer
        Tabnaam = InputBox("Naam voor nieuwe tab:")

        If Tabnaam = "" Then
            MsgBox("Te weinig tekens.")
        Else
            Knop = MsgBox("Tab met naam " & Tabnaam & " aanmaken?", vbOKCancel)
            If Knop = vbOK Then TabControl1.TabPages.Add(Tabnaam)
            If Knop = vbCancel Then
            End If
        End If
 
Laatst bewerkt:
De regel: If Knop = vbCancel Then
heeft geen nut en kun je verwijderen.
 
Inderdaad. Maar bij de InputBox staat het volgende: 'Annulere'. Hoort dit?
 
Dat is dus je mogelijkheid om de annuleren (Cancel).
Dat is wat het vbOkCancel attribuut doet.
 
Laatst bewerkt:
Maar 'Annulere' zonder n aan het einde. Het staat niet echt professioneel. Maar als het niet anders kan neem ik het voor lief.

Pim
 
Laatst bewerkt:
Geen idee, dat heb ik nog niet eerder gezien.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan