Problema con decimales

24/01/2006 - 14:02 por .:: MaStErDoN ::. | Informe spam
Hola
tengo una formulario donde se cargan datos numericos decimales en un
DatagridView ero sucede que si carga por ejemplo 1.5 usando el punto de el
NumPad cuando cambio de celda este numero se convierte en 15 ya que mi
sistema esta configurado para la coma como separador decimal. y por ahi
cargar numeros usando la coma cercana a la barra espaciadora resulta algo
tedioso..
He probado con el evento keypress del DGV pero este no salta..

Que puedo hacer para solventar el problema?

Gracias
Andres

Preguntas similare

Leer las respuestas

#1 .:: MaStErDoN ::.
24/01/2006 - 14:47 | Informe spam
Creo que esta es una solucion:

Private Sub DesFactuDataGridView_EditingControlShowing(ByVal sender As
Object, ByVal e As
System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles
DesFactuDataGridView.EditingControlShowing

Dim esTextBox As Boolean = TypeOf e.Control Is
DataGridViewTextBoxEditingControl

If esTextBox Then

AddHandler e.Control.KeyPress, AddressOf keypressed

End If

End Sub

Private Sub keypressed(ByVal o As [Object], ByVal e As KeyPressEventArgs)

If e.KeyChar = "." Then

e.KeyChar = ","

End If

End Sub


Alguien sabe otra?

Andres
".:: MaStErDoN ::." escribió en el mensaje
news:
Hola
tengo una formulario donde se cargan datos numericos decimales en un
DatagridView ero sucede que si carga por ejemplo 1.5 usando el punto de el
NumPad cuando cambio de celda este numero se convierte en 15 ya que mi
sistema esta configurado para la coma como separador decimal. y por ahi
cargar numeros usando la coma cercana a la barra espaciadora resulta algo
tedioso..
He probado con el evento keypress del DGV pero este no salta..

Que puedo hacer para solventar el problema?

Gracias
Andres

Respuesta Responder a este mensaje
#2 Eduardo Alvarado Meza
25/01/2006 - 07:17 | Informe spam
Tu post ya fue puesto anteriormete y Jose Villalobos lo respondio. Cito sin
modificaciones lo que el escribio:

Si te ves obligado a trabajar con el punto en cualquier sistema operativo,
puedes forzar el uso del punto como decimal cambiando el CultureInfo que
utiliza el Thread actual, asi:
Dim a As Double

Dim nfi As New System.Globalization.NumberFormatInfo

nfi.CurrencyDecimalSeparator = "."

Dim cult As New System.Globalization.CultureInfo("ES-ES", True)

cult.NumberFormat = nfi

System.Threading.Thread.CurrentThread.CurrentCulture = cult

a = CType(TextBox1.Text, Double) * CType(TextBox2.Text, Double)

TextBox3.Text = a.ToString

Otra cosa que te recomiendo es que utilices Decimals para este tipo de
datos. Los valores de coma flotante (Double, Single) te pueden dar algún que
otro susto. Para dinero el Decimal va perfecto.

Jesús Villalobos
Responsable de desarrollo
Consultoría Certia
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida