Cuando un cuadro de texto C # WinForms recibe foco, quiero que se comporte como la barra de direcciones de su navegador.
Para ver a qué me refiero, haga clic en la barra de direcciones de su navegador web. Notarás el siguiente comportamiento:
- Al hacer clic en el cuadro de texto debería seleccionar todo el texto si el cuadro de texto no estaba enfocado previamente.
- El mouse hacia abajo y arrastrar en el cuadro de texto debe seleccionar solo el texto que he resaltado con el mouse.
- Si el cuadro de texto ya está enfocado, al hacer clic no se selecciona todo el texto.
- Enfocar el cuadro de texto mediante programación o mediante tabulación del teclado debería seleccionar todo el texto.
Quiero hacer exactamente esto en WinForms.
ALERTA DE ARMA MÁS RÁPIDA: ¡lea lo siguiente antes de responder! Gracias chicos. :-)
Llamar a .SelectAll () durante los eventos .Enter o .GotFocus no funcionará porque si el usuario hizo clic en el cuadro de texto, el cursor se colocará donde hizo clic, anulando la selección de todo el texto.
Llamar a .SelectAll () durante el evento .Click no funcionará porque el usuario no podrá seleccionar ningún texto con el mouse; la llamada .SelectAll () seguirá sobrescribiendo la selección de texto del usuario.
Llamar a BeginInvoke (cuadro de texto (Acción) .Seleccionar todo) en foco / ingresar evento enter no funciona porque infringe la regla # 2 anterior, seguirá anulando la selección del usuario en foco.