【问题标题】:HelpProvider in checbox list specific item (C#)复选框列表特定项目中的 HelpProvider (C#)
【发布时间】:2018-06-26 23:33:18
【问题描述】:

我正在制作一个使用复选框列表的应用程序。每个项目都必须有一个“描述”,所以我决定使用 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");
}

【问题讨论】:

  • 你能添加更多关于错误的信息吗?哪一行,确切的信息?谢谢。
  • 正如我所说,编译器给出了这个确切的错误:“CS1503: Argument 1: cannot convert from 'object' to 'System.Windows.Forms.Control”,所以我猜checklistbox中的项目是从来没有打算接收 HelpProvider 信息。我正在寻找的是一种解决方法。
  • 您的 CheckListBox 项目的类型是什么(当您添加它们时)?它们是简单的字符串吗?
  • 是的。它们添加了 1 个参数,即字符串。
  • 您无法使用 HelpProvider 执行此操作。而是为控件实现 HelpRequested 事件并自己调用 Help.ShowHelp()。

标签: c# object checkbox checkboxlist


【解决方案1】:

所以,你得到这个错误的原因是因为 SetShowHelpSetHelpString 期望一个 Control 对象(一个按钮、一个标签等......)但是你给它一个 string HelpProvider 无法处理。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    相关资源
    最近更新 更多