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

Ejecutar botón según donde esté el foco

Estas en el tema de Ejecutar botón según donde esté el foco en el foro de .NET en Foros del Web. Hola foreros. Esta pregunta seguro que me la contestais rápido En un WebForm con varios textboxs y varios buttons quisiera que estando el foco en ...
  #1 (permalink)  
Antiguo 23/06/2004, 02:08
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 6 meses
Puntos: 1
Ejecutar botón según donde esté el foco

Hola foreros.

Esta pregunta seguro que me la contestais rápido
En un WebForm con varios textboxs y varios buttons quisiera que estando el foco en la caja1 (por ejemplo) al pulsar intro se ejecute el evento CLICK del botón1 o si el foco está en la caja2 y pulso intro se ejecute el evento CLICK del botón2.

Creo que está claro, no?

Saludos amigos!!!
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #2 (permalink)  
Antiguo 23/06/2004, 04:28
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 8 meses
Puntos: 2
Hola!!
Se me ocurre una idea, un poco extravagante pero bueno....
Código:
 
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
         TxtActivo = 1
End Sub
De esta forma sabes que si se ha rellenado el textbox1 el valor de la vble TxtActivo es 1 y al pulsar intro compruebas el valor de esa vble y llamas al evento click del boton1.

Prueba a ver que tal.....
(También pienso que javascript puede servir de ayuda en esto....)

__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #3 (permalink)  
Antiguo 23/06/2004, 04:48
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 6 meses
Puntos: 1
Es una forma de enfocarlo...
Gracias GeRuNdIo.... seguimos investigando.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #4 (permalink)  
Antiguo 23/06/2004, 05:20
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 8 meses
Puntos: 2
Hola de nuevo!!
Encontre algo de información para controlar el foco. (Cómo te dije.....JScript)

Te lo pasteo tal cual, se entiende bastante bien.(No hay ganas de traducir.....)

Changing Control Focus
The ASP.NET web controls provide a TabIndex property, but this property only applies to Internet Explorer and can't be used to programmatically set the focus to a control of your choice. To perform this task, you'll need the help of some JavaScript code. In this case, you need to find the JavaScript object that corresponds to the control, and call its focus() method.

The easiest way to handle this task is to create a function that accepts a control, extracts its client-side ID, and uses it to generate the JavaScript function required to set the focus to that control. You can then register this function so it will set the focus the next time the next time the page is sent to the user.

Here's the function you will need in C#:


private void SetFocus(Control ctrl)
{
// Define the JavaScript function for the specified control.
string focusScript = "<script language='javascript'>" +
"document.getElementById('" + ctrl.ClientID +
"').focus();</script>";

// Add the JavaScript code to the page.
Page.RegisterStartupScript("FocusScript", focusScript);
}

Here's the same function rewritten for VB .NET:


Private Sub SetFocus(ByVal ctrl As Control)
' Define the JavaScript function for the specified control.
Dim focusScript As String = "<script language='javascript'>" & _
"document.getElementById('" + ctrl.ClientID & _
"').focus();</script>"

' Add the JavaScript code to the page.
Page.RegisterStartupScript("FocusScript", focusScript)
End Sub

You can now call the custom SetFocus() function from any event handler to change the control focus as needed:


SetFocus(myTextBox);

Remember, the focus change won't take effect until the page is rendered and sent back to the browser.

Espero que te sirva de algo!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #5 (permalink)  
Antiguo 23/06/2004, 05:42
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 6 meses
Puntos: 1


GeRuNdIo, según veo, el código que has posteado es para colocar el foco en el textbox que desees. No se si me habré explicado bien al hacer mi pregunta pero lo que quiero es que según en el textbox que esté el foco y pulsemos INTRO se ejecute el evento CLICK del botón que yo quiera.

Gracias de todas formas... seguimos investigando.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #6 (permalink)  
Antiguo 28/06/2004, 03:29
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 6 meses
Puntos: 1
Auto-Solucionado.

En el HTML:

Código:
		<SCRIPT LANGUAGE="javascript">
			function testEnterKey(buttonToClick){
				if (event.keyCode == 13){
				event.cancelBubble = true;
				event.returnValue = false;
				Form1[buttonToClick].click();
			}
		}
		</SCRIPT>
En el CodeBehind:

Código:
textBox1.Attributes.Add("OnKeyPress", "testEnterKey('Button1');")
textBox2.Attributes.Add("OnKeyPress", "testEnterKey('Button2');")
Y listo... Saludos!!!
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #7 (permalink)  
Antiguo 28/06/2004, 05:02
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 6 meses
Puntos: 1
Problema...

Con 'Buttons' funciona pero con 'ImageButtons' no me funciona.
¿Alguna sugerencia?

Saludos!!!
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #8 (permalink)  
Antiguo 28/06/2004, 05:26
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 8 meses
Puntos: 2
Hola!
Si hiciste exactamente lo mismo que con el button, no entiendo por qué no funciona, ya que en la clase ImageButton existe el evento click como tal.....
He buscado algo y no encuentro ningún problema como el tuyo, seguire buscando....
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #9 (permalink)  
Antiguo 28/06/2004, 05:40
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 6 meses
Puntos: 1
Mil gracias Gerundio... simplemente prueba el código que adjunté y verás que rula con botones pero no con botones de imagen.

Saludos!!!
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #10 (permalink)  
Antiguo 27/08/2010, 17:55
 
Fecha de Ingreso: febrero-2009
Mensajes: 36
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Ejecutar botón según donde esté el foco

Saludos!! Casualmente encontre un enlace que posiblemente te pueda ayudar:

Código:
http://social.msdn.microsoft.com/Forums/es-ES/netfxwebes/thread/f71d7602-41ef-437c-81b8-eee25203ecc2
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 22:24.