不要在TextBox. 仅用于显示/编辑value.
private string value;
private void textBox1_TextChanged(object sender, EventArgs e)
{
// at this moment value is still old
var oldValue = value;
value = ((TextBox)sender).Text; // text1.Text
// here you have oldValue and new value
}
Run Code Online (Sandbox Code Playgroud)
也许您不想value在每个TextChanged. 也许您会在关闭表单、按下某个按钮等时执行此操作。
无论如何,想法应该很清楚:如果您需要拥有旧值,则将其存储在自己的某个地方(作为变量、作为Tag、作为应用程序设置、导出等)。
另外,请注意用户的工作方式。如果TextBox包含3,则用户可以先按4然后再删除3。否则用户可能会不小心按下54。其中哪些将是旧值:3, 34, 54?只是为了向您展示,拥有旧值的概念可能会带来什么问题。也许您不想要它,并且通过获取旧值来解决您要解决的问题有更好的解决方案。