Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB 2010] Leggere contenuto TextBox e inserire risultato in altro TextBox

    Salve a tutti...

    ho iniziato a programmare da poco e sto facendo un pò di esercizi "a random" per fare un pochino di pratica.
    Mi sono inventato un esercizio semplice (almeno per la maggior parte delle persone): ho creato un form con 3 textbox e 1 button. Nella prima TextBox l'utente inserisce la superficie di una nazione a caso, nella seconda TextBox inserisce la popolazione e cliccando sul pulsante, nella terza TextBox dovrebbe comparire il risultato, cioè la densità di popolazione.

    Ho svolto l'esercizio senza l'utilizzo di classi. Ma ora vorrei farlo utilizzando una classe. Ho generato così la classe "densità". Ma purtroppo non ci riesco. Il problema (almeno per adesso) è che non so come fare in modo che il programma legga i dati che l'utente inserisce (e di conseguenza, che inserisca poi il risultato nella terza TextBox).

    Per iniziare ho scritto qualcosa del genere:

    Private m_Sup As Double
    Public Property Superficie As Double
    Get
    Return m_Pop
    End Get
    Set(ByVal value As Double)
    m_Sup = value
    End Set
    End Property

    Potreste aiutarmi, consigliarmi, suggerirmi e soprattutto spiegarmi qualcosina?? Grazie e scusate per la banalità della cosa ma ho iniziato VB da 1 mesetto.....

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    40

    Re: [VB 2010] Leggere contenuto TextBox e inserire risultato in altro TextBox

    Originariamente inviato da nirv@n@
    ...
    codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            TextBox3.Text = TextBox1.Text / TextBox2.Text
            'TextBox1 è la superficie mentre TextBox2 è il numero di abitanti e TextBox3 è il risultato
            'Fai attenzione però che se nelle textbox c'è una stringa, ti da errore
        End Sub
    Usanto NOME.Text ti ritorna il testo attualmente inserito dentro un controllo o semplicemente il testo del controllo (ad esempio una label).
    Mentre l'uso del segno "/" è l'operazione per dividere 2 numeri (double o integer) mentre "*" è l'operazione di moltiplicazione.

    Usa la tag [CODE] per inserire del codice nel forum, che diventa molto più leggibile il post.

  3. #3
    Ti ringrazio per la risposta.

    Però ho già fatto l'esercizio come consigli tu. Io vorrei fare quel calcolo all'interno della classe in modo che nel codice del form devo solo richiamare il metodo "calcolaDensità".... qualcosa del tipo:


    "TextBoxRisultato = calcolaDensità"


    Non so se mi sono spiegato......e non so neanche se sto dicendo una cosa fattibile oppure una boiata tremenda

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    40
    codice:
    Function CalcolaDensità(ByVal superficie As Integer, ByVal popolazione As Integer)
            Dim risultato As Integer = superficie / popolazione
            Return risultato
        End Function
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            TextBox3.Text = CalcolaDensità(TextBox1.Text, TextBox2.Text)
        End Sub
    Function, a differenza di Private Sub, richiede un ritorno di una variabile, che è esattamente quello che vuoi tu. Semplicemente, una volta fatta la funzione, deve richiedere 2 variabili quando chiamata: superficie e popolazione, che calcolerà e ritornerà il risultato.

  5. #5
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Ad essere pignoli, bisognerebbe fare così:
    codice:
    Function CalcolaDensità(ByVal superficie As Integer, ByVal popolazione As Integer)
            Dim risultato As Integer = superficie / popolazione
            Return risultato
        End Function
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            TextBox3.Text = CalcolaDensità(CInt(TextBox1.Text), CInt(TextBox2.Text))
        End Sub
    In modo da convertite ciò che inserisce l'utente (string) in numero (Integer) esplicitamente. Poi bisognerebbe anche gestire il caso in cui l'utente, invece che numeri, inserisca lettere o simboli ( es TextBox1.Text è uguale a "£RF45610.")

    @nirv@n@

    Prova a leggere questa guida: è una miniera di informazioni.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

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.