Textbox multiline

giovedì 31 maggio 2012 - 17.04
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows Vista  |  Visual Studio 2008  |  SQL Server 2005

salvux Profilo | Newbie

Ciao a tutti,
Sto provando a imparare il visual basic.net e ho bisogno di un po di aiuto o consigli,ho un problema con una textbox multiline
in pratica devo moltiplicare 1 textbox (multiline) per una textbox(non multiline) e visualizzare il risultato in una terza textbox(multiline)
Vi posto il codice che ho provato a scrivere:
Dim pezzi As Integer
Dim costo, totals As Double

Dim z As Integer = 0
Dim x As Integer
Dim y() As String

If Integer.TryParse(TextBox5.Text, pezzi) And Double.TryParse(TextBox3.Text, costo) Then
totals = pezzi * costo


TextBox4.Text = totals

Next

End If
mi da il seguente errore:
Cast non valido dalla stringa "12 2 " al tipo 'Double

Grazie per l'aiuto.

AntCiar Profilo | Expert

Ciao

Il problema sta nel come hai scritto il valore nella textBox3.

Sicuramente hai messo "12,2" (con la virgola)

prova a scrivere

Double.TryParse(TextBox3.text.Replace(",","."), costo)
Cristian Barca

salvux Profilo | Newbie

grazie x la risposta,ma 12 e 2 sono i numeri che dovrei moltiplicare(textbox multiline) per una altro numero(textbox non multiline)
porta pazienza ma sono alle prime armi.

AntCiar Profilo | Expert

avevo interpretato male
pensavo fosse 12,2

allora controlla che effettivamente nella textbox3 che tenti di convertire in double oltre al numero non ci sia qualche spazio.

al posto del .Replace(",",".") che ti avevo detto prima mettici un .Trim() così togli eventuali spazi in inizio e fine del testo.

PS. Ma invece di usare due TextBox per scrivere dei numeri perchè non usi due NumericUPDown che permettono solo l'immissione di numeri e ti danno già valori di tipo Decimal senza dover fare conversioni che possono essere soggette a errori?
Cristian Barca

salvux Profilo | Newbie

adesso faro delle prove con il tuo consiglio,
per il momento grazie 1000.

salvux Profilo | Newbie

ho sostituito il replace con il trim e moltiplica solo il primo numero delle textbox (multiline),
in realtà i numeri da moltiplicare sono più di uno.


NumericUPDown mi sembra che non si presta per quello che devo fare o forse non conosco bene l'argomento.

AntCiar Profilo | Expert

Allora, non capisco bene una cosa:

il pro tryparse lo fai sul contenuto di textbox5 mentre il secondo lo fai su TextBox3
Parli del multiline, ma cosa intendi dire?

Non è che in textbox 5 ci tieni scritto:

5
4

e in TextBox3 ci tieni:

12
2

Se è cosi allora vorresti un qualcosa che ti faccia 5x12 e poi 4x2?

Se è così allora le cose cambiano...
Cristian Barca

salvux Profilo | Newbie

Ciao quello che devo fare è questo:


textbox5.text: 2 *
5 *
4*



TextBox3,text: 2


textbox4.text:
il risultato=
4
10
8
in pretica: textbox5.text(2 5 4) *TextBox3,text(2)
spero sia chiaro,Ciao buona giornata

AntCiar Profilo | Expert

Ora si che è chiaro.....



Dim tmpResult As String = "" Dim partA As String() = Me.TextBox5.Text.Split(vbCrLf) Dim partB As String() = Me.TextBox3.Text.Split(vbCrLf) Dim i, c As Integer Dim numA, numB As Double For i = 0 To partA.Length - 1 numA = 0 Double.TryParse(partA(i).Replace("*", ""), numA) For c = 0 To partB.Length - 1 numB = 0 Double.TryParse(partB(c).Replace("*", ""), numB) tmpResult = tmpResult & Convert.ToDouble(numA * numB).ToString() & vbCrLf Next Next Me.TextBox4.Text = tmpResult
Cristian Barca

salvux Profilo | Newbie

Ciao ora funziona tutto a meraviglia,ti ringrazio moltissimo x l'aiuto
ti assicuro che ne farò dono di quello che ho imparato da te.
GRAZIE 1000
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5