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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Pedro Luna Montalvo \(MVP.NET\)
02/09/2004 - 03:51 | Informe spam
Mi estimado amigo .NET Framework 2.0 esta en sus versiones Beta.
No debes de extrañarte que encuentres ciertos problemas con el mismo,
precisamente porque al momento deberia ser usado solo con fines educativos o
de prueba.

Saludos
Pedro Luna, MVP
Gye, Ecu



"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


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida