CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 alguin me podria colaborar en esta mini aplicasion

(1/1)

fox29:
bueno amigo despues de tanto leer manuales pude hacer mi mini aplicasion
pero me falta depurarlo o sea mejorarlo
el problema es el siguiente: mejor primero les cuento como lo hice para que tengan una idea de que se trata
en el Form1 agrego 7 TextBox con su correspondiente Label y agrego 2 Buttons ,Buttons1 le agrego el nombre Calcular y Buttons2 Salir bueno ahora vamos al codigo
'Declaro la variable Pi
Dim Pi As Double=3.141592

'ahora en el evento Presskey del TextBox1.Text agrego lo siguiente ( para que no me ingresen letras)
If Char.Isletter(e.Keychar)Then
e.Handled=True
MessageBox.Show("No se admiten letras","ATENCION",messageboxbuttons.ok,messageboxicon.Information)
este evento se lo agreso hasta el Textbox4.text que es hasta donde se ingresan datos

aqui les doy un detalles de los nombres y su orden
aclaro (Textbox1:Label1 escribo Diametro,Textbox2.text: Label2 escribo Altura,Textbox3.text:label3 escribo densidad del mineral,
Textbox4.text:Label4 escribo porcentaje de porosida
bueno hecho esta aclaracion continuamos con el codigo
doble click en el button1 cuyo nombre es Calcular y agrego el siguiente codigo
DIm Diam,Alt,Dens,Poro As Double
Diam=(textBox1.text)/2 ' para que me entrege el radio (Diam es diametro)
Alt=TextBox2.text
Dens=TextBox3.text
Poro=(TextBox4.text)/100 ' es para ingreasar un porsentaje de porosidad (Poro es Porcentaje de porosidad que es la diferencia entre el volumen aparente del cilindro que se calculo menos el volumen real del mineral )
textBox5.text=Pi*(Diam)^2*Alt ' me entrega el volumen del ciclindro que seria el volumen aparente del mineral que necesito para introducirlo en esta columna de Lixiviacion
TextBox6.text=Poro*TextBox5.text ' me entrega el volumen real del mineral que necesito para esta columna de lixiviasion
TextBox7.text=Dens*TextBox6.text ' me entrega el peso del mineral que necesito para agregar a esta columna de lixiviacion

bueno lo ejecuto todo bien y preciso hasta Textbox5.text
despues en el TextBox6 el resultado se me corre una coma hacia la derecha
y en el TextBox7 el resultado se me corre 3 comas hacia la derecha
mi pregunta es amigos como soluciono este problema y porque se me corren las comas en los resultado

korsakof:
Hola aqui tienes un codigo.
                        procedimiento esnumero--> devuelve si es numero.
                                              SI-->Le da formato al numero segun la configuracion regional
                                              NO-->Se le dice al usuario que no es correcto por msgbox

                         procedimiento calcular--> Es el procedimientoque nos realiza los calculos.

Lo hago asi para tenerlo mas ordenado. Ademas si corriges un procedimiento te vale para todos la modificacion.



--- Código: vb.net ---Imports System.Windows.Forms.TextBox Public Class Form1' #################################################################################################'                                             Procedimiento esnumero'              Comprueba el textbox que desees si es numero o no y pone formato' #################################################################################################    Private Sub esnumero(ByRef ncaja As TextBox)         If ncaja.text = "" Then            MsgBox("No has escrito nada")        Else            If Microsoft.VisualBasic.IsNumeric(ncaja.text) = False Then                MsgBox("No es un numero")                ncaja.Focus()            Else                ncaja.Text = FormatNumber(Val(ncaja.Text), -1)            End If        End If    End Sub ' #################################################################################################'                                        Procedimiento Calcular'                                Aqui realizas los calculos oportunos' #################################################################################################    Private Sub calcular()         ' Realizar calculos         ' Esto no lo hice porque no entiendo lo que quieres hacer pero defines variable a las que solo asignas valor y no las    usas posteriormente. Eso no tiene sentido.         ' Otra cosa, aunque visual te convierta tipo automaticamente es recomendable que uuses la funcion "val" para recoger el numero de la caja de texto.' Ej: suma=val(cajadetexto.text)+2     End Sub ' ################################################################################################'                                   Evento LostFocus de la caja de texto.' ################################################################################################   Private Sub txtdiametro_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtdiametro.LostFocus         Call esnumero(sender) 'Llamo al procedimiento que me comprueba que es numero y pone formato    ' Necesitas un evento lost focus para cada caja de texto    End Sub             End Sub 

fox29:
muchas gracias korsakof

Navegación

[0] Índice de Mensajes

Ir a la versión completa