c#textbox事件仅用于用户输入

时间:2011-03-12 00:02:55

标签: c# events textbox

我有一个Textbox控件,有时会以编程方式更新,也可以由用户更新。 我怎么能区分这两个事件? 我想在用户更改文本时将“Dirty”标志设置为“true”。

5 个答案:

答案 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一起使用以在编辑之前保存值