VB.NET访问Winforms非公开成员

时间:2018-10-04 13:31:15

标签: vb.net mdi

在使用多文档界面模型的应用程序中,我有一个窗口不断刷新自己的窗口。而且,当用户界面启动另一个窗口(例如向导)时,在某些情况下,新创建的窗口可能会失去焦点(无法重现此行为,但很多人报告了这一点)。

我认为这可能与以下事实有关:当异步功能在主窗口中完成时,它实际上会夺回焦点(但显然只有在向导窗口进行一些计算时才会发生)。

我计划在不激活时在主窗口中取消计时器更新。但是遇到了无法访问“ My.Active”属性的问题。

我可以在调试中看到它,但是无法从代码中访问它: 这是“我的”组件的部分屏幕截图:

This is a partial screenshot of "My" component

我一定错过了一些简单的东西,但是现在已经有几个小时无法弄清了。

1 个答案:

答案 0 :(得分:0)

我最终使用了Reflection来获得该属性,这是我对问题的评论中所建议的。它虽然不漂亮,但适用于我当前的情况。

这是解决方案:

Dim prop As System.Reflection.PropertyInfo = Me.GetType().GetProperty("Active",
      System.Reflection.BindingFlags.NonPublic Or
      System.Reflection.BindingFlags.Instance)
Dim value As Boolean = prop.GetValue(Me)