2010-03-12 23 views
1

我有一個用戶控件(稱爲'父'),它動態添加或刪除其他控件('孩子')。如何從HelpProvider註銷一個控件?

父級維護一個HelpProvider對象,該對象應該被查詢與包含在child('subchild')中的控件相關的幫助字符串。子控件不能直接訪問,所以我打算給孩子提供一些讓孩子填充HelpProvider對象的方法(例如public void InstallHelpProvider(HelpProvider))。所以,當孩子被動態地添加到父母時,父母會在安裝該控件之前調用孩子上的InstallHelpProvider。

我不完全知道HelpProvider內部,但我想它會爲正在安裝的控件保留一個映射。因此,我想從父母的子控件中刪除條目(如果僅僅是爲了不浪費系統資源)。

HelpProvider有一個公開的方法ResetShowHelp(Control),我假設這項工作。但是,MSDN表示這種方法是基礎設施,並不是直接使用。

有人用過這種方法麼?或者也許有另一種(打算)如何做到這一點?或者,也許HelpProvider不適合我的設計?

問候, jerb

回答

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); 

我不記得這兩個電話是否必要,或者第一個電話是否足夠。

+0

好吧,我本可以猜出自己,因爲HelpProvider.SetHelpKeyword的備註部分是這樣說的(儘管如此,對於SetHelpKeyword)。只是出於興趣:你從哪裏得到這個?只是我沒有找到任何簡單的測試方法來設置值null真的會刪除條目... – jerb 2010-03-12 13:59:28

+0

正如您所寫,HelpProvider(以及其他擴展類,如工具提示提供程序)維護着將控件與新數據關聯的映射。我想我已經學會了如何通過這樣的構造去除工具提示(將null與控件關聯)。 – Timores 2010-03-12 15:48:17