在TextBox中,我正在监视文本更改。在做一些事情之前我需要检查文本。但我现在只能检查旧文本。我怎样才能获得新文本?
private void textChanged(object sender, EventArgs e)
{
// need to check the new text
}
我知道.NET Framework 4.5有新的TextChangedEventArgs
类,但我必须使用.NET Framework 2.0。
答案 0 :(得分:15)
获取新值
您可以使用Text
的{{1}}属性。如果此事件用于多个文本框,那么您需要使用TextBox
参数来获取正确的sender
控件,如此...
TextBox
获取OLD值
对于那些希望获得旧价值的人,您需要自己跟踪。我建议一个简单的变量开始为空,并在每个事件结束时更改:
private void textChanged(object sender, EventArgs e)
{
TextBox textBox = sender as TextBox;
if(textBox != null)
{
string theText = textBox.Text;
}
}
您可以创建自己的TextBox控件,该控件继承自内置控件,并添加此附加功能,如果您打算大量使用它。
答案 1 :(得分:2)
查看textbox events,例如KeyUp,KeyPress等。例如:
private void textbox_KeyUp(object sender, KeyEventArgs e)
{
// Do whatever you need.
}
也许这些可以帮助您实现所需的目标。
答案 2 :(得分:0)
即使使用较旧的.net fw 2.0,如果不在textbox.text属性中,你仍然应该在eventArgs中拥有new和old值,因为事件是在文本更改之后而不是在文本更改期间触发的。
如果您想在更改文本时执行操作,请尝试KeyUp事件,而不是更改。
答案 3 :(得分:-1)
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.
}
}