c# - 如果用户在文本框中键入内容或以编程方式调用 myTextBox.Text,如何确定是否触发了 "TextChanged"事件

标签 c# .net vb.net winforms

Is there a way to find out if the "TextChanged" event is fired because

  1. the user is typing into a textbox or
  2. the programmer called myTextBox.Text = "something"?

只是为了给你一些颜色,我不想在用户将每个字母输入文本框时使用react,所以我使用“已验证”事件来捕捉用户完成的时间,以便我可以使用react。问题是当程序员执行“myTextbox.Text =”something”时我没有办法捕捉到。我知道捕捉更改的唯一方法是使用 TextChanged 但我不想在用户在文本框中输入每个字母。有什么建议吗?

最佳答案

因此在您的“格式化”文本框类中:

public override String Text{
   get{return text;}
   set
   {
      //perform validation/formatting
      this.text = formattedValue;
   }

这应该允许您在程序员更改文本时格式化文本,用户输入验证仍需要在验证事件中处理。

关于c# - 如果用户在文本框中键入内容或以编程方式调用 myTextBox.Text,如何确定是否触发了 "TextChanged"事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9636767/

相关文章:

regex - 使用正则表达式替换换行符

vb.net - 在 Excel 中合并单元格

c# - 最佳服务器端 .NET PDF 编辑库

c# - Visual Studio Code 和 Visual Studio 使用相同的编译器吗?

c# - 在 Parallels 8 错误的 Windows 7 上运行 C# Windows 窗体应用程序

c# - 在类库中设置配置设置的最标准方法

c# - 为 C# 方法添加返回语句会提高性能吗?

c# - 一个项目里面有两个表单,每个表单建两个独立的exe文件

c# - 如何在 C# 中检查 control.anchor 属性值?

由于 Visual Studio 生成的代码,C# 应用程序静默崩溃