如何从HelpProvider取消注册Control?

时间:2010-03-12 13:23:03

标签: .net controls

我有一个用户控件(称为“父”),它动态添加或删除其他控件('child')。

父级维护一个HelpProvider对象,该对象应该被查询以获取与子级('subchild')中包含的控件相关联的帮助字符串。子进程控件不能直接访问,所以我计划为子进程提供一些让孩子填充HelpProvider对象的方法(例如public void InstallHelpProvider(HelpProvider))。因此,当子动态添加到父级时,父级将在安装控件之前调用子级上的InstallHelpProvider。

我不完全了解HelpProvider内部,但我想它会为正在安装的控件维护一个地图。因此,当从父项中删除子控件时,我想从父级帮助提供程序中删除条目(如果只是为了不浪费系统资源)。

HelpProvider有一个公共方法ResetShowHelp(Control),我假设它可以完成这项工作。但是,MSDN说这种方法是基础设施,不打算直接使用。

有没有人使用这种方法?或者可能还有另一种(预期)方式如何做到这一点?或者也许HelpProvider不能很好地适应我的设计?

此致 jerb

1 个答案:

答案 0 :(得分:0)

在控件上安装帮助就像这样(你已经知道了):

    this.helpProvider1.SetShowHelp(this.cityTextBox, true);
    this.helpProvider1.SetHelpString(this.cityTextBox, "Enter the city here.");

以相反的方式删除帮助:

    this.helpProvider1.SetShowHelp(this.cityTextBox, false;
    this.helpProvider1.SetHelpString(this.cityTextBox, null);

我不记得两个电话是否必要或第一个是否足够。