checbox中的帮助提供者列表特定项(C#)

checbox中的帮助提供者列表特定项(C#),c#,object,checkbox,checkboxlist,C#,Object,Checkbox,Checkboxlist,我正在制作一个使用复选框列表的应用程序。每个项目都必须有一个“描述”,所以我决定让它与帮助提供者。但问题是,当我创建一个循环,用HelpProvider填充复选框列表中的所有复选框时,Visual告诉我它是一个无法转换为System.Windows.Forms.Control的对象 有什么解决办法吗 for (int i = 0; i < CheckedListBox.Items.Count; i++) { this.AdditionalInfos.SetShowHelp(Che

我正在制作一个使用复选框列表的应用程序。每个项目都必须有一个“描述”,所以我决定让它与帮助提供者。但问题是,当我创建一个循环,用HelpProvider填充复选框列表中的所有复选框时,Visual告诉我它是一个无法转换为System.Windows.Forms.Control的对象

有什么解决办法吗

for (int i = 0; i < CheckedListBox.Items.Count; i++)
{
     this.AdditionalInfos.SetShowHelp(CheckedListBox.Items[i], true);
     this.AdditionalInfos.SetHelpString(CheckedListBox.Items[i], "example description");
}
for(int i=0;i
因此,出现该错误的原因是,
SetShowHelp
SetHelpString
需要一个
控件
对象(一个按钮、一个标签等),但您给它的是一个
字符串
,它不能由
帮助提供者处理


我相信为了做你想做的事情,你必须编写一个定制的东西(因为
复选框列表的元素不是控件)。您可以编写一个“复杂”的东西,在悬停时显示描述,也可以只听
SelectedIndexChanged
并在标签或其他东西上显示描述。

您可以添加更多有关错误的信息吗?哪一行,确切的信息?谢谢。正如我所说的,编译器给出了一个确切的错误:“CS1503:参数1:无法从'object'转换为'System.Windows.Forms.Control',因此我猜checkedlistbox中的项目永远不会接收帮助提供者信息。我要找的是一个解决方法。你的复选框项目的类型是什么(当你添加它们时)?它们是简单的字符串吗?是的。它们添加了1个参数,该参数为字符串。您不能使用HelpProvider执行此操作。而是为控件实现HelpRequested事件并自己调用Help.ShowHelp()。