Domanda:
Visual Basic e MsgBox?
?
2010-03-14 11:02:38 UTC
Al pulsante Button1 ho scritto il seguente codice per moltiplicare le due caselle di testo:
Dim A As Double = TextBox1.Text
Dim B As Double = TextBox2.Text
MsgBox(A * B)
Il risultato è quello voluto. Ma se io volessi far comparire in MsgBox "Il prodotto è ..." come devo scrivere?
Ho provato MsgBox ("Il prodotto è(A*B)") ma non calcola più il risultato. Help me!
Quattro risposte:
?
2010-03-14 11:32:49 UTC
Prova con

msgbox("il prodotto è " & (A*B))



Ciao.
?#
2010-03-16 20:18:39 UTC
devi scrivere:



MsgBox "Il risultato è " & A * B
Power to you!
2010-03-14 21:09:51 UTC
scrivendo ("Il prodotto è(A*B)") non ti calcola assolutamente niente perchè hai messo tutto tra " " quindi il tuo testo è tutto quello e non c'è alcun output... i casi sono 2:



1- variabile =a*b

Msgbox ("Il prodotto è: " & cstr(variabile))



2- Msgbox("Il prodotto è: " & cstr(a*b)) <= va bene pure questa
Attila
2010-03-14 23:40:46 UTC
Cerca di rendere leggibile con facilità il programma, dichiara le variabili all' inizio e caricale in un secondo tempo. L' MsgBox va usato per avvisare di un eventuale dato errato o particolare.

Nel oggetto TextBox inserisci il valore esso può essere numerico o una stringa la risposta la puoi far apparire il una Label o in una PictureBox.

Altre sì, puoi utilizzare la stessa TextBox per inserire entrambi i valori da calcolare, ma se vuoi che siano visibili entrambi usane due.

Private Sub Command1_Click( )

Dim A As Double, B As Double

A = TextBox1.Text

B = TextBox2.Text

MsgBox " Il risultato di " & A & " * " & B & " = " & Str(A*B), ,"MOLTIPLICAZIONE"

'//oppure

'//Label1.Caption = " Il risultato di " & Str(A)& " * " & Str(B) & " = " & Str(A*B)

End Sub

Se utilizzi le variabili in tutto il programma dichiarale in modo esplicito fuori dalle Sub, scrivi così:

Option Explicit

Dim A As Double ' quì inserisci l' indicazione a cosa si riferisce la variabile A

Dim B As Double ' quì inserisci l' indicazione a cosa si riferisce la variabile A

'-----Clicchi su Invio e Option Explicit va al suo posto da solo e lo trovi sotto Generale

L' utilizzo del MsgBox per il controllo del valore digitato è più indicato che usarlo per il risultato di un calcolo, Dato che le variabili hanno una dimensione limitata oppure per evitare che al posto di un numero vengano digitate delle lettere, meglio far eseguire questi controlli nelle Sub delle TextBox, una volta scritto il valore nella TextBox premi il tasto Invio.

'-------------------------

Private Sub Text1_KeyPress( KeyAscii As Integer ) ' controllo del valore ad ogni tasto premuto

Select Case KeyAscii ' KeyAscii contiene il valore ASCII del tasto premuto

Case is < 32 ' funzioni della tastiera ( Tab, Spaces, Invio ecc)

Case 48 To 57 ' tutti i numeri da 0 a 9

Case 46 ' il punto (inglese) separatore dei decimali in vb

Case Else

KeyAscii = 0 ' il tasto digitato viene annullato, ho scrivi numeri o niente

End Select

'proseguiamo con il controllo della grandezza max del numero digitato esempio 99999.99999

If Val( Text1.text) > 99999.99999 then

MsgBox " Il numero inserito è superiore a quanto consentito" , , "ATTENZIONE"

Text1.text = ""

Text1.SetFocus

Else

If KeyAscii = vbKeyReturn Then

A = Val(Text1.text)

Text2.SetFocus

End Sub

'---------------------

Private Sub Text2_KeyPress( KeyAscii As Integer ) ' controllo del valore ad ogni tasto premuto

Select Case KeyAscii ' KeyAscii contiene il valore ASCII del tasto premuto

Case is < 32 ' funzioni della tastiera ( Tab, Spaces, Invio ecc)

Case 48 To 57 ' tutti i numeri da 0 a 9

Case 46 ' il punto (inglese) deparatore dei decimali in vb

Case Else

KeyAscii = 0 ' il tasto digitato viene annullato, ho scrivi numeri o niente

End Select

'proseguiamo con il controllo della grandezza max del numero digitato esempio 99999.99999

If Val( Text2.text) > 99999.99999 then

MsgBox " Il numero inserito è superiore a quanto consentito" , , "ATTENZIONE"

Text2.text = ""

Text2.SetFocus

Else

If KeyAscii = vbKeyReturn Then

B = Val(Text2.text)

CommandButton1.SetFocus

End Sub

'------------------------

Private Sub CommandButton1_Click( )

Label1.Caption = " Il risultato di " & Str(A) & " X " & Str(B) & " = " & Str(A*B)

End Sub

'------------------------

Buon divertimento. Ciao


Questo contenuto è stato originariamente pubblicato su Y! Answers, un sito di domande e risposte chiuso nel 2021.
Loading...