Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1

    [VB.NET] Dato da InputBox??

    Buonasera,
    ho iniziato da poco a programmare, iniziando proprio da Visual Basic.
    Vorrei creare un programma che tramite una textbox, impostando "0" calcolo il perimetro di un quadrato, mentre con "1" il perimetro di un rettangolo. Per impostare il dato poi da calcolare ho un inputbox, ma non riesco a farlo vedere come dato. Come faccio?

    Copio la sequenza di codice:
    codice:
     
    'INPUT
     Dim Forma As Short 
     Dim Dato1 As Decimal
     Dim Dato2 As Decimal
     Dim Dato23 As Decimal
    
    
    'OUTPUT
    Dim Risultato As Short
    Dim Risultato2 As Decimal
    
    
    
    
    
    
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    
    
        End Sub
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If Forma = 0 Then
                Dato1 = Val(InputBox("Inserire il numero", "Messaggio per l'utente"))
                Risultato = Dato1 * 4
                Risultato = CStr(TextBox2.Text)
    
    
    
    
    
    
    
    
    
    
    
    
            End If
        End Sub
    Ringrazio!

  2. #2
    Scusa, cosa intendi per "non riesco a farlo vedere come dato"?

    Una precisazione: Val dà un double, Dato1 è un Decimal: VB converte automaticamente, ma è meglio prendere la buona abitudine di attivare Option Strict in Progetto / Compilazione: ti evidenzia queste piccole discrepanze.

    Dato1 = CType(Val(InputBox("Inserire il numero", "Messaggio per l'utente")), Decimal).

    EDIT:

    Ehm, non è che intendevi questo??

    TextBox2.Text = Risultato.ToString
    Ultima modifica di eziogsv; 22-05-2014 a 00:10

  3. #3
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    Scusa, cosa intendi per "non riesco a farlo vedere come dato"?

    Una precisazione: Val dà un double, Dato1 è un Decimal: VB converte automaticamente, ma è meglio prendere la buona abitudine di attivare Option Strict in Progetto / Compilazione: ti evidenzia queste piccole discrepanze.

    Dato1 = CType(Val(InputBox("Inserire il numero", "Messaggio per l'utente")), Decimal).

    EDIT:

    Ehm, non è che intendevi questo??

    TextBox2.Text = Risultato.ToString
    Ringrazio per la risposta, provvedo a modificarlo. Io penso che non mi veda il valore poi calcolare il perimetro.
    Riguardo il "double", eseguito il debug, VB mi evidenzia la stringa
    codice:
    Risultato = CStr(TextBox2.Text)
    dicendomi che il valore Short non va bene... C'entra qualcosa?

    "CTtype" e "ToString" non li conosco xD
    Ultima modifica di federik95; 22-05-2014 a 07:55

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    ciao
    Quote Originariamente inviata da federik95 Visualizza il messaggio
    codice:
    Risultato = CStr(TextBox2.Text)
    dicendomi che il valore Short non va bene... C'entra qualcosa?

    "CTtype" e "ToString" non li conosco xD
    Si. nel tuo codice dichiari
    codice:
    Dim Risultato As Short
    Ti dice che non puoi dare un valore string a una variabile short.
    Ti consiglio di usare variabili numeriche, double o decimal se ti serve e convertirle in string solo al momento di assegnare il valore alle textbox, per visualizzare il risultato nell'interfaccia del tuo programma.
    Il ToString serve, in genere, per convertire una variabile numerica in stringa. E' comodo perché accetta parametri che ti permettono di definire "come" la vuoi la tua stringa, tipo con quanti decimali, ecc ecc. CType serve per fare lo stesso conversioni (tecnicamente casting) tra tipi diversi di variabili, nel qual caso anche oggetti...
    Ultima modifica di renygade; 22-05-2014 a 10:49

  5. #5
    codice:
    Risultato = CStr(TextBox2.Text)

    Il codice di cui sopra non ha senso logico: converti in stringa una stringa (TextBox2.Text è già di per sé una stringa) e la eguagli ad un numero short: come detto non ha senso.

    Per quello pensavo che invece volessi scrivere
    codice:
    TextBox2.Text = Risultato.ToString
    'nota: Risultato.ToString = CStr(Risultato) = CType(Risultato, String)

    In tal modo nella TextBox2 visualizzi Risultato.

    D1
    viene regolarmente letto: per controllare non fai altro che scrivere, subito dopo la riga che calcola D1:

    Debug.Print("D1= " & D1.ToString)

    e, lanciando il programma in modalità Debug, nella finestra di controllo immediato verifichi il valore che è stato attribuito a D1. Così per verificare il valore di ogni altra variabile.
    Ultima modifica di eziogsv; 22-05-2014 a 13:53

  6. #6
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    codice:
    Risultato = CStr(TextBox2.Text)

    Il codice di cui sopra non ha senso logico: converti in stringa una stringa (TextBox2.Text è già di per sé una stringa) e la eguagli ad un numero short: come detto non ha senso.

    Per quello pensavo che invece volessi scrivere
    codice:
    TextBox2.Text = Risultato.ToString
    'nota: Risultato.ToString = CStr(Risultato) = CType(Risultato, String)

    In tal modo nella TextBox2 visualizzi Risultato.

    D1
    viene regolarmente letto: per controllare non fai altro che scrivere, subito dopo la riga che calcola D1:

    Debug.Print("D1= " & D1.ToString)

    e, lanciando il programma in modalità Debug, nella finestra di controllo immediato verifichi il valore che è stato attribuito a D1. Così per verificare il valore di ogni altra variabile.
    Infatti così mi fa visualizzare il risultato, quindi devo usare "ToString" per l'inputBox

  7. #7
    Ora però sorge un altro problema, non mi funziona l'altra "via" dell' "IF", posto il codice:

    codice:
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        If Forma = 0 Then
                Dato1 = Val(InputBox("Inserire il numero", "Messaggio per l'utente"))
                Risultato = Dato1 * 4
                TextBox2.Text = Risultato.ToString
            ElseIf Forma <> 0 Then
                Dato2 = Val(InputBox("Inserire la base del rettangolo", "Messaggio per l'utente"))
                Dato23 = Val(InputBox("Inserire l'altezza del rettangolo", "Messaggio per l'utente"))
                Risultato2 = Dato2 * Dato23
                TextBox2.Text = Risultato2.ToString
    
    
    
    
    
    
    
    
    
    
    
    
    
    
            End If
        End Sub
    Mi scuso per i miei eventuali errori o "ignoranza", sto cercando di studiare da solo senza conoscenze da un libro consigliatomi xD

  8. #8
    Nessuno è nato imparato... stai tranqui.

    Letto così non c' è motivo per cui non dovrebbe funzionare...

    Hai provato a mettere dei Debug.Print dopo Dato2, Dato23 e Risultato2 per verificare i loro valori?

    Piccola nota:

    ElseIf Forma <> 0 Then...

    è inutile, basta un semplice Else: visto che prima dichiari If Forma = 0 va da sé che dopo sarà <> 0.

  9. #9
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    Nessuno è nato imparato... stai tranqui.

    Letto così non c' è motivo per cui non dovrebbe funzionare...

    Hai provato a mettere dei Debug.Print dopo Dato2, Dato23 e Risultato2 per verificare i loro valori?

    Piccola nota:

    ElseIf Forma <> 0 Then...

    è inutile, basta un semplice Else: visto che prima dichiari If Forma = 0 va da sé che dopo sarà <> 0.
    SI, prima ho messo Else, poi vedendo che non funzionava ho provato con elself..però ancora nulla, non funziona non capisco.
    Sia che immetto il valore "0" o altro numero me lo vede uguale.

    Comunque, no, non ho messo nessun tipo di debug.print

  10. #10
    Quote Originariamente inviata da federik95 Visualizza il messaggio
    Comunque, no, non ho messo nessun tipo di debug.print
    .... e allora mettili e verifica i valori che ottieni in realtà, se no stiamo a parlare dell' aria fritta.

    Edit:

    O in alternativa metti una interruzione di codice all' altezza di:

    TextBox2.Text=Risultato2.ToString

    Dodiché, quando il programma si sarà bloccato (ma sempre attivo), vai col cursore del mouse sopra alle variabili: dovrebbe comparire piccola popup coi loro valori.
    Ultima modifica di eziogsv; 22-05-2014 a 17:48

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.