我有一个文本框控件,有时会通过编程更新,也可以由用户更新。 如何区分这两个事件? 当用户更改文本时,我希望设置一个“脏”标志为“真”。
在TextChanged事件中检查TextBox的Modified属性。如果为true,则说明更改是由用户进行的,否则文本是通过编程方式更改的。
示例:
void Texbox_TextChanged(object sender, EventArgs e)
{
if (((TextBox)sender).Modified)
TextboxUserInput();
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
// Insert the code you want to run when the text changes here!
}
我的解决方案适用于类型、复制和粘贴。
private void TextChanged(object sender, EventArgs e)
{
if (((TextBox)sender).ContainsFocus)
{
}
}
尝试使用onBlur
这将捕捉用户离开字段的时刻。
您可以与onFocus一起使用它来在编辑之前保存值。