c# - net - ¿Cómo obtener el texto NUEVO en TextChanged?
text changed asp net (4)
Eche un vistazo a los eventos del cuadro de texto como KeyUp , KeyPress, etc. Por ejemplo:
private void textbox_KeyUp(object sender, KeyEventArgs e)
{
// Do whatever you need.
}
Tal vez estos pueden ayudarte a lograr lo que estás buscando.
En un TextBox estoy monitoreando los cambios de texto. Necesito revisar el texto antes de hacer algunas cosas. Pero solo puedo comprobar el texto antiguo en el momento. ¿Cómo puedo obtener el nuevo texto?
private void textChanged(object sender, EventArgs e)
{
// need to check the new text
}
Sé que .NET Framework 4.5 tiene la nueva clase TextChangedEventArgs
pero tengo que usar .NET Framework 2.0.
Incluso con la versión anterior .net fw 2.0, debería tener el valor nuevo y antiguo en eventArgs si no está en la propiedad textbox.text ya que el evento se activa después y no durante el cambio de texto.
Si desea hacer cosas mientras se está cambiando el texto, intente con el evento KeyUp en lugar del Cambiado.
Obteniendo el NUEVO valor
Puedes usar la propiedad Text
del TextBox
. Si este evento se usa para varios cuadros de texto, entonces querrá usar el parámetro del sender
para obtener el control de TextBox
correcto, como ...
private void textChanged(object sender, EventArgs e)
{
TextBox textBox = sender as TextBox;
if(textBox != null)
{
string theText = textBox.Text;
}
}
Obteniendo el valor ANTIGUO
Para aquellos que buscan obtener el valor anterior, tendrá que realizar un seguimiento de eso usted mismo. Sugeriría una variable simple que comience como vacía y que cambie al final de cada evento:
string oldValue = "";
private void textChanged(object sender, EventArgs e)
{
TextBox textBox = sender as TextBox;
if(textBox != null)
{
string theText = textBox.Text;
// Do something with OLD value here.
// Finally, update the old value ready for next time.
oldValue = theText;
}
}
Podría crear su propio control TextBox que se hereda del integrado, y agrega esta funcionalidad adicional, si planea usar esto mucho.
private void stIDTextBox_TextChanged(object sender, EventArgs e)
{
if (stIDTextBox.TextLength == 6)
{
studentId = stIDTextBox.Text; // Here studentId is a variable.
// this process is used to read textbox value automatically.
// In this case I can read textbox until the char or digit equal to 6.
}
}