Posible Error del .NET

31/08/2004 - 21:33 por Camilo Valderrama | Informe spam
Antes que nada, un cordial saludo a todos...

Solo queria compartir con ustedes un posible error o inconsistencia que
tiene el .NET, estoy utilizando el 2003 con el .NETFRAMEWORK 2.0,
lo que susede es lo siguiente:


En windows form, tengo un control de usuario que llamo desde una form, dicho
control esta compuesto por varios textbox y multicombobox que estan en una
clase aparte y son llamados es tiempo de ejecucion tambien...

En dos textbox que se encuentran en el control, nesecito validar un formato
como este: #.###.###.###,##;

Para eso calculo con variables de tipo "double" que me presentan el aiguente
formato #########.###### y les cambio el formato utilizando:
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");

string str=MyDouble.ToString("N");

Cuando presiono enter en el control el mismo ejecuta una serie de
validaciones, si es correcta la entrada, llama a unos metodos en el
formulario y hace calculos, todo lo hace bien pero
if(oGrid[ind].textCtothaber.Text.IndexOf(",")>=1|oGrid[ind].textCtothaber.Te
xt.IndexOf(".")>=1)

{

if
(oGrid[ind].textCtothaber.Text.Length-oGrid[ind].textCtothaber.Text.IndexOf(
",")==2)

{

string str=saldoHaber.ToString("N"); //*******
saldoHaber es un double, luego de esta linea str tomo el valor correcto
ejemplo, si saldo es: 100000.52 str vala ahora 100.000,52

oGrid[ind-1].textCtotdebe.Text=str;
//******** siendo srt = "100.000,52", luego de que se ejecuta esta linea
oGrid[ind-1].textCtotdebe.Text sigue siendo igual a lo que era antes de esta
linea, hay esta el error!!!


//********lo que significa que el .NET hace caso omiso de esta linea,
aparentemente por el formato, cabe destaca que es line en otras partes del
programa donde no utilizo


//********tantas llamadas entre clases si funciona correctamente, la cuestio
es que si str si agarra el valor como un string, porque el textbox no????

}

}

ahora bien esto si funciona



if(oGrid[ind].textCtothaber.Text.IndexOf(",")>=1|oGrid[ind].textCtothaber.Te
xt.IndexOf(".")>=1)

{

if
(oGrid[ind].textCtothaber.Text.Length-oGrid[ind].textCtothaber.Text.IndexOf(
",")==2)

{

string str=System.Convert.ToString(saldoHaber);
//** ahora str agarra el valor estring de saldoHaber es decir "100000.52"

oGrid[ind-1].textCtotdebe.Text=str;
//** ahora esta linea si se ejecuta y oGrid[ind-1].textCtotdebe.Text es str
es decir "100000.52"; lo que demuestra que las llamadas, variables etc estan
bien,


//**y la variable str es un string como en el caso anterior solo que no
resibio el cambio del formato.

}

}

Siendo esta la unica diferencia, considero que es un error o inconsistencia
de .NET, cabe destacar que para realizar esto se hacen muchos llamados entre
clases y controles siendo esto la posible causa a mi juicio de este error,
ya que si se usan estas lineas en un fomrmulario comun, y en un textbox que
pertenesaca a el mismo formulario y no a un control, si funciona
corectamente.

P.D.:

ATTE Camilo Valderrama
 

Leer las respuestas

#1 Yo
31/08/2004 - 22:10 | Informe spam
Deberias amigo mio leer un poco mas sobre.net yo ando en la mism y muchas
veses me pasa cosas similares que terminoi acomodando con libros o internet
,
suerte

"Camilo Valderrama" escribió en el mensaje
news:
Antes que nada, un cordial saludo a todos...

Solo queria compartir con ustedes un posible error o inconsistencia que
tiene el .NET, estoy utilizando el 2003 con el .NETFRAMEWORK 2.0,
lo que susede es lo siguiente:


En windows form, tengo un control de usuario que llamo desde una form,


dicho
control esta compuesto por varios textbox y multicombobox que estan en una
clase aparte y son llamados es tiempo de ejecucion tambien...

En dos textbox que se encuentran en el control, nesecito validar un


formato
como este: #.###.###.###,##;

Para eso calculo con variables de tipo "double" que me presentan el


aiguente
formato #########.###### y les cambio el formato utilizando:
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");

string str=MyDouble.ToString("N");

Cuando presiono enter en el control el mismo ejecuta una serie de
validaciones, si es correcta la entrada, llama a unos metodos en el
formulario y hace calculos, todo lo hace bien pero



if(oGrid[ind].textCtothaber.Text.IndexOf(",")>=1|oGrid[ind].textCtothaber.Te
xt.IndexOf(".")>=1)

{

if



(oGrid[ind].textCtothaber.Text.Length-oGrid[ind].textCtothaber.Text.IndexOf(
",")==2)

{

string str=saldoHaber.ToString("N"); //*******
saldoHaber es un double, luego de esta linea str tomo el valor correcto
ejemplo, si saldo es: 100000.52 str vala ahora 100.000,52

oGrid[ind-1].textCtotdebe.Text=str;
//******** siendo srt = "100.000,52", luego de que se ejecuta esta linea
oGrid[ind-1].textCtotdebe.Text sigue siendo igual a lo que era antes de


esta
linea, hay esta el error!!!


//********lo que significa que el .NET hace caso omiso de esta linea,
aparentemente por el formato, cabe destaca que es line en otras partes del
programa donde no utilizo


//********tantas llamadas entre clases si funciona correctamente, la


cuestio
es que si str si agarra el valor como un string, porque el textbox no????

}

}

ahora bien esto si funciona






if(oGrid[ind].textCtothaber.Text.IndexOf(",")>=1|oGrid[ind].textCtothaber.Te
xt.IndexOf(".")>=1)

{

if



(oGrid[ind].textCtothaber.Text.Length-oGrid[ind].textCtothaber.Text.IndexOf(
",")==2)

{

string str=System.Convert.ToString(saldoHaber);
//** ahora str agarra el valor estring de saldoHaber es decir "100000.52"

oGrid[ind-1].textCtotdebe.Text=str;
//** ahora esta linea si se ejecuta y oGrid[ind-1].textCtotdebe.Text es


str
es decir "100000.52"; lo que demuestra que las llamadas, variables etc


estan
bien,


//**y la variable str es un string como en el caso anterior solo que no
resibio el cambio del formato.

}

}

Siendo esta la unica diferencia, considero que es un error o


inconsistencia
de .NET, cabe destacar que para realizar esto se hacen muchos llamados


entre
clases y controles siendo esto la posible causa a mi juicio de este error,
ya que si se usan estas lineas en un fomrmulario comun, y en un textbox


que
pertenesaca a el mismo formulario y no a un control, si funciona
corectamente.

P.D.:

ATTE Camilo Valderrama


Preguntas similares