c# – 我需要访问组合框的非公开成员(突出显示的项目)
发布时间:2020-12-15 06:25:51 所属栏目:百科 来源:网络整理
导读:我正在为一个应用程序实现Key Navigation,而当Combo Box集中在一起时,我想覆盖空格键功能,使其像一个Enter键;喜欢这个: if (!cb.IsDropDownOpen){ cb.IsDropDownOpen = true;}else{ cb.SelectedItem = cb.{non-public member HighlightedItem}; cb.IsDropDo
我正在为一个应用程序实现Key Navigation,而当Combo Box集中在一起时,我想覆盖空格键功能,使其像一个Enter键;喜欢这个:
if (!cb.IsDropDownOpen) { cb.IsDropDownOpen = true; } else { cb.SelectedItem = cb.{non-public member HighlightedItem}; cb.IsDropDownOpen = false; } 问题是我需要获取非公开成员的价值,以便我可以设置所选择的值并关闭下拉菜单(如何正常工作). 现在的问题是:实现这一目标最快捷,最轻松的方式是什么? 解决方法
您必须使用反射来获取属性的值
PropertyInfo highlightedItemProperty = cb.GetType().GetProperties(BindingFlags.NonPublic | BindingFlags.Instance).Single(pi => pi.Name == "HighlightedItem"); object highlightedItemValue = highlightedItemProperty.GetValue(cb,null); 要浏览所有属性或字段,请查看 var allProps = cb.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(pi => pi.Name).ToList(); var allFields = cb.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).OrderBy(pi => pi.Name).ToList(); (您可以在调试器中阅读它们) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在finalize / close期间,sqlite3_column_text返回的数据被破
- c# – 只允许在构造函数中设置值的set访问器的名称是什么?
- 根据jsonobject中的部分数据更新javabean中对应的属性[PATC
- ruby-on-rails – Gmaps4rails超出最大调用堆栈大小?
- 解决vue.js 数据渲染成功仍报错的问题
- ajaxfileupload带多个参数上传方法
- postgresql – postgres全文搜索像运算符
- c – string3.h中__warn_memset_zero_len的定义在哪里
- AJAX实现Excel文件下载
- 单一职责之ImageLoader(二)