Foros del Web » Programación para mayores de 30 ;) » .NET »

SendKeys

Estas en el tema de SendKeys en el foro de .NET en Foros del Web. hola, tengo este código para detectar si el usuario pulsa un punto "." para cambiarlo luego con el valor que tenga la variable SEP: Cita: ...
  #1 (permalink)  
Antiguo 25/09/2005, 07:40
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años
Puntos: 156
Exclamación SendKeys

hola,

tengo este código para detectar si el usuario pulsa un punto "." para cambiarlo luego con el valor que tenga la variable SEP:

Cita:
If e.KeyChar = "." Then
e.Handled = True
SendKeys.Send(sep)
end if
pues cuando llega la aplicación a ejectuar la línea de código que está en negrita, se me bloquea el PC y debo reiniciarlo. Lo que no entiendo es que hay de mal en ese código, yo lo veo correcto, pero evidentemente correcto no debe estar....

LA variable SEP almacena o una coma "," o un punto "." , o sea que no son cosas raras...

En fin que si alguien me puede echar un cable...

Saludos!
  #2 (permalink)  
Antiguo 26/09/2005, 09:22
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 7 meses
Puntos: 76
Para que necesitar remplazar el . por , ?
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 26/09/2005, 11:52
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años
Puntos: 156
Porque internamente utilizo la configuración regional en que el separador de decimales es el punto "." y así no tengo problemas para realizar operaciones con decimales. Lo que pasa que aqui en España el separador es la coma "," y en el modo de visualización e impresión quiero mostrar la coma. Por esto, cuano el usuario aprieta el "." del teclado numérico quiero que salga la coma.

Me has entendido lo que quiero decir? creo que me he líado un poco al explicarlo

saludos!
  #4 (permalink)  
Antiguo 26/09/2005, 11:54
Avatar de gualicho  
Fecha de Ingreso: enero-2005
Ubicación: Capital Federal - Argentina
Mensajes: 55
Antigüedad: 19 años, 9 meses
Puntos: 0
No sería más fácil hacer en el evento change del texto hacer un por ejemplo:
TextBox.Text.Replace(".",SEP) ???? Nosé si lo podrías aplicar pero lo veo más fácil.
__________________

ASUS A7N8X-E Deluxe
AMD Semprom 2200 + (1.5 ghz) FSB 333
2 x 512 mb Kingston ddr 400 en dual channel
ATI Radeon 9250 (128 mb / 64 bits)
HD SAMSUNG SATA 120 gb
HD HITACHI IDE 80 gb

SO: Win XP, Debian Sarge
  #5 (permalink)  
Antiguo 26/09/2005, 12:07
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 7 meses
Puntos: 76
Me suponia que era para validar configuracion, mira yo como lo hago.

Código:
public static string ValidarConfiguracion()
		{
			string temp="";
			temp=String.Format(Convert.ToString(1.5),"#.#");	
			if(temp.IndexOf(",",0)==1)
			{
				signo = ",";
			}
			else
			{
				signo = ".";
			}
			return signo;
		}
Esa funcion me retorna "." o ",", segun como esta la configuaracion regional, y donde necesito usarla reemplazo el "." o "," existente por lo que me de volvio la funcion, asi:
Código:
if(clsGeneral.signo==",")
			{
				txtPesaje.Text=txtPesaje.Text.Replace(".",",");
			}
			else
			{
				txtPesaje.Text=txtPesaje.Text.Replace(",",".");
			}
Espero te sirva.
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #6 (permalink)  
Antiguo 26/09/2005, 13:30
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años
Puntos: 156
gracias por el códgio, pero lo del replace era lo primero que apliqué, pero no me sirve, ya que en vez de reemplazarme el caracter y ponerlo en el mismo lugar, me los va poniendo delante de todo, y claro, no me sirve. Por eso intento utilizar el sendkeys.

saludos!
  #7 (permalink)  
Antiguo 26/09/2005, 14:09
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 7 meses
Puntos: 76
Eso esta raro, siempre utilizo el remplaze y hasta el momento no me a fallado.
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #8 (permalink)  
Antiguo 26/09/2005, 14:30
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
He probado el código que has puesto y no puedo reproducir el error que mencionas, probablemente el error esté en otra parte.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #9 (permalink)  
Antiguo 26/09/2005, 14:32
Avatar de gualicho  
Fecha de Ingreso: enero-2005
Ubicación: Capital Federal - Argentina
Mensajes: 55
Antigüedad: 19 años, 9 meses
Puntos: 0
Definitivamente, el replace no te lo pone delante de nada, lo reemplaza justo donde estaba...
__________________

ASUS A7N8X-E Deluxe
AMD Semprom 2200 + (1.5 ghz) FSB 333
2 x 512 mb Kingston ddr 400 en dual channel
ATI Radeon 9250 (128 mb / 64 bits)
HD SAMSUNG SATA 120 gb
HD HITACHI IDE 80 gb

SO: Win XP, Debian Sarge
  #10 (permalink)  
Antiguo 26/09/2005, 14:42
Avatar de gualicho  
Fecha de Ingreso: enero-2005
Ubicación: Capital Federal - Argentina
Mensajes: 55
Antigüedad: 19 años, 9 meses
Puntos: 0
Claro, sino otra es esa:

double var = Convert.ToDouble(TextBox.Text);
TextBox.Text = var.ToString("#" + SEP + "#");
quizás así si sea más legal, el tema es que tenés que asegurarte que tenés un valor numérico... sino simplemente usá un NumericUpDown y establecele la propiedad DecimalPlaces a la cantidad de decimales que quieras y asunto sellado, te pone coma o punto según la configuración de tu pc (mucho mejor creo yo).
__________________

ASUS A7N8X-E Deluxe
AMD Semprom 2200 + (1.5 ghz) FSB 333
2 x 512 mb Kingston ddr 400 en dual channel
ATI Radeon 9250 (128 mb / 64 bits)
HD SAMSUNG SATA 120 gb
HD HITACHI IDE 80 gb

SO: Win XP, Debian Sarge
  #11 (permalink)  
Antiguo 27/09/2005, 03:35
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años
Puntos: 156
a ver, el código del replace lo pongo en el evento del KeyPress del textbox. Cuando el usuario pone un punto ".", ejecuta el código del replace, y si, no me pone la coma dónde había el punto. Pero hace tiempo buscando por internet ya ví que le pasaba a varia gente, así que lo del replace en el evento keypress no lo utilizo. El Replace en otros eventos me funciona perfectamente.

Por esto, cuando quieres cambiar una tecla presionada y enviarle otra al usuario, se utiliza el SendKeys. Pero no se porque si le paso la coma en una variable se me bloquea, pero si lo pongo "," asi,no.

Bueno me han pasado un código para solucionar el tema este, si me funciona ya lo colgaré aquí por si alguien nunca se encuentra con el mismo problema.

Gracias por todas las respuestas.

Saludos

Última edición por freegirl; 27/09/2005 a las 03:43
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:27.