我有一个Textbox控件,有时会以编程方式更新,也可以由用户更新。 我怎么能区分这两个事件? 我想在用户更改文本时将“Dirty”标志设置为“true”。
答案 0 :(得分:7)
检查TextChanged事件上TextBox的Modified属性。如果为true,则更改由用户进行,否则文本将以编程方式更改。
示例:
void Texbox_TextChanged(object sender, EventArgs e)
{
if (((TextBox)sender).Modified)
TextboxUserInput();
}
答案 1 :(得分:6)
您可以使用文本框的Key Down事件。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
//Insert the code you want to run when the text changes here!
}
答案 2 :(得分:5)
我的解决方案 适用于打字,复印和粘贴
private void TextChanged(object sender, EventArgs e)
{
if (((TextBox)sender).ContainsFocus)
{
}
}
答案 3 :(得分:3)
以编程方式完成时避免设置“脏”标志。禁用事件处理程序或设置一个标记“这是代码,而不是用户”
答案 4 :(得分:0)
尝试onBlur
这将抓住用户离开现场的那一刻。
您可以与onFocus一起使用以在编辑之前保存值