VB.NET 访问 winforms 非 public 成员

VB.NET access winforms non-public member

在我使用多文档界面模型的应用程序中,我有一个 windows 不断以异步方式刷新自身。当 UI 启动另一个 window(例如向导)时,新创建的 window 在某些情况下可能会失去焦点(无法重现此行为,但许多人报告).

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

我打算在主 window 不活动时取消计时器更新。但是遇到无法访问的问题 "My.Active" 属性.

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

我一定是遗漏了一些简单的东西,但现在几个小时都没弄明白。

我最终使用反射来获得 属性 正如我的问题的评论中所建议的那样。它不是很漂亮,但它适用于我当前的场景。

解决方法如下:

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)