c# - 如何找出 TextBox Leave 事件的私有字段值?
问题描述
基于这个问题,我试图对 TextBox Leave 事件做同样的事情。这应该是不费吹灰之力的,我创建了一个扩展方法,如下所示:
public static class TextBoxExtensions
{
public static bool IsLeaveEventWired(this TextBox txt)
{
var eventKey = typeof(TextBox).GetField("EVENT_LEAVE",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Static)
.GetValue(txt);
EventHandlerList eventList = typeof(TextBox).GetProperty("Events",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance)
.GetValue(txt, null) as EventHandlerList;
return eventList[eventKey] != null;
}
}
问题是显然EVENT_LEAVE键不存在,因为我得到了 NullReferenceException。到目前为止,我已经尝试获取所有 TextBox 的字段,但我只得到一个 FieldInfo 对象“EVENT_TEXTALIGNCHANGED”,这不是我有处理程序的事件,而且我所做的两个事件“离开”和“KeyUp”不包括在名单。
所以作为问题的标题,我怎样才能找到 TextBox 的 Leave 事件的关键来查看它是否已连接?
谢谢你。
解决方案
推荐阅读
- winforms - 将鼠标悬停在组合框上时禁用自动对焦
- php - 如何通过 Azure 上传小文件 API 在 Yammer API 上上传文件
- node.js - 猫鼬没有在生产现场连接
- php - 您的要求无法解决为一组可安装的软件包。PHP 7.4 泊坞窗
- php - Paypal 快递结帐未发回已发布的数据
- javascript - TypeError:无法读取 MongoStore.Store.createSession 中未定义的属性“过期”
- python - 与 Tensorflow 的自相关
- arrays - 在Angular中将一棵树展平为一个数组
- flutter - 如何在 TabBarView 中通过 MaterialPageRoute 导航?
- java - 我不知道在这些位置的 else 句中还能放什么