winforms - 检测是否没有以编程方式触发 TextChanged 事件
问题描述
我有一个TextChanged
附加到 Windows 窗体中的文本框的事件。如何确保对该事件的特定调用不是以编程方式触发的,而是通过用户与 TextBox 交互来触发的?
解决方案
我不确定你的问题是什么意思。我会分开我的答案。
如果您想以编程方式调用文本更改函数并且在用户交互调用或以编程方式调用时有所不同:
假设当您以编程方式调用该函数时,您将 null 传递给发送者和事件参数
txt_TextChanged(null,null);
,您可以使用此解决方案:private void txt_TextChanged(object sender, EventArgs e) { if(sender == null) { // triggered programmatically } else { // triggered by the user. sender object is the textbox interacted by the user } }
如果您想以编程方式更改文本而不触发事件:
this.txt.TextChanged -= new System.EventHandler(this.txt_TextChanged); txt.Text = "bar"; this.txt.TextChanged += new System.EventHandler(this.txt_TextChanged);
推荐阅读
- python - 无法启动 jupyter 笔记本
- python - 在 Pandas 中进行分组和插值
- android - 如何在 Fragment 的 Recyclerview 中放置 EditText 和发送按钮?
- php - 如果字符串与数据库中的部分匹配,如何检查 MySQL?
- python - MySQL cur.execute 格式
- c# - 不要等待类实例初始化并继续使用代码c#
- python - 从上面的目录导入模块 - Python2
- spring-boot - 处理@Pattern 注解失败时抛出的异常
- redis - redis:从另一台计算机获取键值
- python - 在列表元素的中间追加/添加字符串