New entry

venerdì 21 novembre 2008 - 08.46

Ceppoman Profilo | Newbie

Buongiorno a tutti, mi sono appena iscritto su consiglio di un amico , perchè vorrei imparare ad usare Visual Basic,
premetto ke non conosco nulla del linguaggio, sto solamente leggendo un libro "Visual Basic 6.0", e provando poco alla volta ad
applicare ciò che leggo su VB.
Son sicuro ke troverò parecchi aiuti da parte Vostra.

ciao

Dainesi Profilo | Senior Member

Benvenuto a bordo !

Visual Basic è un ottimo linguaggio di sviluppo, però ti consiglio di imparare parallelamente anche Visual Basic.NET. In Visual Basic 6.0 si è sviluppato e si sviluppa ancora ma il futuro (anche per mantenimentoe compatibilità dei sistemi operativi) è .NET (o RealBASIC per applicazioni multipiattaforma...).

Se hai dei dubbi ... noi siamo qui per questo!

Ceppoman Profilo | Newbie

ah ok, io ho installato visual basic 6 xè mi è stato prestato un libro della stessa versione, xciò non sono in grado di utilizzare nulla senza un supporto cartaceo...ho anke installato visual studio 2008, è che con il libro in possesso non è x nulla compatibile...
ma secondo te è meglio iniziare con VB 6 oppure con visual studio 2008?

grazie ciao

Dainesi Profilo | Senior Member

Se sei proprio a digiuno di programmazione inizia da vb6 altrimenti fai vb 2008

Ceppoman Profilo | Newbie

ciao, sono ancora io, sono un pò confusionario, xè ora sto smanettando con visula basic 2008;
stavo cercando di creare un gioketto ke tempo fa ho creato con excel...es: =SE(a1*a2);"........volevo ora crearlo con VB2008.
quello ke nn riesco a fare è: Allego file così mi spiego meglio.
txtPunteggio1 e txtPunteggio2 li ho resi non visibili

Somma:
If txtPunteggio1.text + txtPunteggio2.text = 11 Then
txtParziale.Text = 1

Non riesco a far sommare i due valori contenuti nelle caselle punteggio 1 e 2, in modo tale ke su queste somme mi dia un risultato x far corrispondere diversi punti.
Cosa sbaglio?
Grazie Ciao

Dainesi Profilo | Senior Member

A differenza di Visual Basic 6.0, le versioni .NET sono fortemente tipizzate e quindi devi fare tu il casting da stringa di testo a numero per sommare i due valori.

Prova così

Public Class Form1

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim a As Long
Dim b As Long

If IsNumeric(TextBox1.Text) Then a = CInt(TextBox1.Text)
If IsNumeric(TextBox2.Text) Then b = CInt(TextBox2.Text)

TextBox3.Text = a + b

End Sub

Private Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
Dim a As Long
Dim b As Long

If IsNumeric(TextBox1.Text) Then a = CInt(TextBox1.Text)
If IsNumeric(TextBox2.Text) Then b = CInt(TextBox2.Text)

TextBox3.Text = a + b

End Sub
End Class

Ceppoman Profilo | Newbie

ok grazie.
Praticamente così mi fai creare una classe per poterla gestire con numeri?

scusa la mia ignoranza, ma voglio capire il concetto:
-Private Sub TextBox1_TexChanged Handles TextBox1.TextChanged
Dim a As Long (cosa vuol dire Dim As Long?)
Dim b As Long

Clnt????

scusa la mia ignoranza in materia, sicuramente avrò molto altro da chiederti, porta pazienza
grazie

Dainesi Profilo | Senior Member

>ok grazie. Praticamente così mi fai creare una classe per poterla gestire con numeri?

In .NET le Classi sono ovunque poiché ogni oggetto è una classe (la Form, il controllo TextBox, ecc...)

>scusa la mia ignoranza, ma voglio capire il concetto:
>-Private Sub TextBox1_TexChanged Handles TextBox1.TextChanged
> Dim a As Long (cosa vuol dire Dim As Long?)
> Dim b As Long
>
> Clnt????
>
>scusa la mia ignoranza in materia, sicuramente avrò molto altro
>da chiederti, porta pazienza
>grazie
>
>

Non preoccuparti! Per tua stessa ammissione sei agli inizi quindi ...

Andiamo con ordine:

Intercetto l'evento TextChanged per compiere un azione come vengono cambiati i valori contenuti nelle 2 textbox

Dim a As Long significa che dichiaro una variabile di tipo Long (un valore numerico intero molto grande) e lo racconto al sistema con

Dim --> Dim ensiona la memoria per contenere a AS (come un ) Long

La funzione CInt è invece una funzione di conversione (Casting) per convertire una variabile di tipo diverso in un Intero (un numero più piccolo del Long ma comunque sempre intero)

Ceppoman Profilo | Newbie

ok, così inizio già a capire un pò di più...
grazie x il momento

Ceppoman Profilo | Newbie

x Dainesi.
ieri ho provato a scrivere qualche stringa, però ho avuto un problema con una somma sul textbox10, allego file.
quando hai tempo buttaci un occhio.

ciao

Dainesi Profilo | Senior Member

Innanzi tutto devi trasferire il controllo nella routine cmdCalcola_Click perché se no l'impostazione della TextBox10 avviene solo dopo l'esecuzione del primo blocco If della routine lagata al bottone. In secondo luogo nella routine del pulsante non hai adottato nessun tipo di Casting !

Rifai il tutto, memorizza in n variabili (n quante sono le TextBox) e valorizzale con l'equivalente numerico del numero scritto nelle TextBox e solo dopo, con le variabili fai i confronti e le scritture. Usa il metodo .ToString per convertire una variabile numerica in una stringa di testo.

Es.

TextBox10.Text = z.ToString

Ceppoman Profilo | Newbie

le variabili le creo nell'evento click, giusto?

Public Class Form1

Private Sub cmdCalcola_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCalcola.Click

come si crea e scrive una variabile su di una textbox?




Dainesi Profilo | Senior Member

Nel pezzo di codice che ti avevo postato c'era un indicazione come la seguente che legge dalla casella 1 e trascrive sulla casella 2 dopo aver moltiplicato per 2

Dim a As Long

If IsNumeric(Text1.Text) then a = CInt(Text1.Text) Else a = 0

a = a*2

Text2.Text = a.ToString
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5