visual validar usar studio primera minusculas minuscula mayusculas mayuscula letra convertir como c# asp.net visual-studio-2008

usar - validar mayusculas y minusculas en c#



Convertir texto en mayúsculas mientras se escribe en el cuadro de texto (5)

Soy nuevo en Visual Studio y utilizo Visual Studio 2008. En un proyecto, quiero hacer que todo el texto esté en mayúsculas mientras lo escribe el usuario sin presionar la tecla Mayús o el bloqueo de mayúsculas. He usado este código

TextBox1.Text = TextBox1.Text.ToUpper();

pero en mayúscula los caracteres después de presionar la tecla Intro.

Solo quiero que los caracteres aparezcan en mayúsculas mientras el usuario los escribe sin pulsar la tecla Mayús o sin mayúsculas.

El código total de la página es como ...

public partial class Test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void TextBox1_TextChanged(object sender, EventArgs e) { TextBox1.Text = TextBox1.Text.ToUpper(); } }

¿Alguien tiene alguna solución, por favor guíame.


Editar (para ASP.NET)

Después de que editaste tu pregunta, estás usando ASP.NET. Las cosas son bastante diferentes allí (porque en ese caso un viaje de ida y vuelta al servidor está bastante desanimado). Puede hacer lo mismo con JavaScript (pero controlar la globalización con toUpperCase() puede ser una molestia) o puede usar clases CSS (dependiendo de la implementación de los navegadores). Simplemente declare esta regla CSS:

.upper-case { text-transform: uppercase }

Y agregue la clase en mayúsculas a su cuadro de texto:

<asp:TextBox ID="TextBox1" CssClass="upper-case" runat="server"/>

Respuesta general (antigua)

pero en mayúscula los caracteres después de pulsar la tecla Intro

Depende de dónde pongas ese código. Si lo pones, por ejemplo, en el evento TextChanged , TextChanged en mayúsculas mientras TextChanged .

Tienes una propiedad que hace exactamente lo que necesitas: CharacterCasing :

TextBox1.CharacterCasing = CharacterCasing.Upper;

Funciona más o menos, pero no maneja muy bien los locales. Por ejemplo, en el idioma alemán, ß es SS cuando se convierte en mayúsculas ( Institut für Deutsche Sprache ) y esta propiedad no lo controla.

Puede imitar la propiedad CharacterCasing agregando este código en el controlador de eventos KeyPress :

e.KeyChar = Char.ToUpper(e.KeyChar);

Desafortunadamente .NET Framework no maneja esto correctamente y la mayúscula del carácter de sharp s se devuelve sin cambios. Existe una versión en mayúscula de ß y es y puede crear cierta confusión, por ejemplo, una palabra que contenga "ss" y otra palabra que contenga "ß" no se pueden distinguir si se convierte en mayúsculas usando "SS"). No olvides que :

Sin embargo, en 2010, el uso de los sacadores de capital se volvió obligatorio en la documentación oficial al escribir nombres geográficos en mayúsculas.

No hay mucho que pueda hacer a menos que agregue el código adecuado para este (y otros) errores sutiles en la localización de .NET . El mejor consejo que puedo darte es que uses un diccionario personalizado para cada cultura que necesites apoyar .

Finalmente, no olvide que esta transformación puede ser confusa para sus usuarios: en Turquía, por ejemplo, hay dos versiones diferentes de i mayúsculas.

Si el procesamiento de texto es importante en su aplicación, puede resolver muchos problemas utilizando DLL especializadas para cada localidad que admita, como lo hacen los procesadores de textos.

Lo que normalmente hago es no usar las funciones estándar de .NET para las cadenas cuando tengo que lidiar con problemas específicos de la cultura (las guardo solo para texto en cultura invariante). Creo una clase Unicode con métodos estáticos para todo lo que necesito (conteo de caracteres, conversiones, comparación) y muchas clases derivadas especializadas para cada idioma compatible. En el tiempo de ejecución, los métodos estáticos utilizarán el nombre de la cultura de subprocesos actual para elegir la implementación adecuada de un diccionario y delegar el trabajo a eso. Un esqueleto puede ser algo como esto:

abstract class Unicode { public static string ToUpper(string text) { return GetConcreteClass().ToUpperCore(text); } protected virtual string ToUpperCore(string text) { // Default implementation, overridden in derived classes if needed return text.ToUpper(); } private Dictionary<string, Unicode> _implementations; private Unicode GetConcreteClass() { string cultureName = Thread.Current.CurrentCulture.Name; // Check if concrete class has been loaded and put in dictionary ... return _implementations[cultureName]; } }

Luego tendré una implementación específica para el idioma alemán:

sealed class German : Unicode { protected override string ToUpperCore(string text) { // Very naive implementation, just to provide an example return text.ToUpper().Replace("ß", "ẞ"); } }

La verdadera implementación puede ser bastante más complicada (no todos los sistemas operativos son compatibles con mayúsculas) pero se toman como una prueba de concepto. Vea también esta publicación para otros detalles sobre problemas de Unicode en .NET.



Si puedes usar LinqToObjects en tu proyecto

private YourTextBox_TextChanged ( object sender, EventArgs e) { return YourTextBox.Text.Where(c=> c.ToUpper()); }

Si no puede usar LINQ (por ejemplo, el FW de destino de su proyecto es .NET Framework 2.0), entonces

private YourTextBox_TextChanged ( object sender, EventArgs e) { YourTextBox.Text = YourTextBox.Text.ToUpper(); }

¿Por qué Text_Changed Event?

Hay pocos eventos de entrada de usuario en el marco ...

1-) OnKeyPressed (comienza a funcionar) cuando el usuario presiona una tecla del teclado después de presionar y soltar la tecla

2-) OnKeyDown dispara cuando el usuario presiona una tecla del teclado mientras presiona la tecla

3-) OnKeyUp cuando el usuario presiona una tecla del teclado y la tecla comienza a soltar (el usuario levanta el dedo de la tecla)

Como puede ver, los tres son acerca del evento de teclado ... Entonces, ¿qué pasa si el usuario copia y pega algunos datos en el cuadro de texto?

si usa uno de estos eventos de teclado, entonces su código funcionará cuando y solo el usuario use el teclado ... por ejemplo, si el usuario usa un teclado de pantalla con el clic del ratón o copie los datos que el código que implementó en los eventos del teclado nunca se dispara (nunca comience a trabajar )

así, y Afortunadamente, hay otra opción para evitar: el evento Text Changed ...

Text Changed evento de Text Changed no le importa de dónde provienen los datos. Incluso puede ser copiar y pegar, un toque de pantalla táctil (como teléfonos o tabletas), un teclado virtual, un teclado de pantalla con clics del mouse (algunas operaciones bancarias lo utilizan para mucha más seguridad, o puede ser que su usuario sea una persona discapacitada que no pueda presionar un teclado estándar) o una inyección de código;) ..

No importa !

Text Changed evento Text Changed simplemente se preocupa por si hay algún cambio en su área de componentes de responsabilidad (aquí, Your TextBox''s Text área de Your TextBox''s Text ) o no ...

Si se produce algún cambio, el código que se implementó en el evento Cambio de texto funciona ...


establezca su propiedad CssClass en textbox1 a "cupper", luego en el contenido de la página cree una nueva clase css:

<style type="text/css">.cupper {text-transform:uppercase;}</style>

Entonces, disfrútalo ...


**/*Css Class*/** .upCase { text-transform: uppercase; } <asp:TextBox ID="TextBox1" runat="server" Text="abc" Cssclass="upCase"></asp:TextBox>