【问题标题】:How can I add a combobox in control designer properties for a WinForms custom control?如何在 WinForms 自定义控件的控件设计器属性中添加组合框?
【发布时间】:2010-12-02 12:37:43
【问题描述】:

我正在创建一个具有属性的自定义控件,该属性可以从一组字符串(如“Man, Woman”)中获取值。因此,在控件设计器属性中,我想显示一个包含这两个选项的组合框。

有标准的方法吗?如果不是我应该实现什么?

【问题讨论】:

    标签: c# .net visual-studio winforms custom-controls


    【解决方案1】:

    简单的方法是在您的代码中添加一个enum,定义您的属性的可能选择,然后配置您的自定义控件的属性以接受该类型的值。属性窗口将自动显示该属性的组合框,其中列出了枚举中的所有可能值。

    所以,例如:

    public enum Gender
    {
        Man,
        Woman,
    }
    
    public class MyCustomControl : UserControl
    {
        public Gender UserGender { get; set; }
    }
    

    【讨论】:

    • 如果没有枚举,你是怎么做的?我希望能够获取表单上所有控件的列表,或者如果我有一个控件,可以获取其中的所有子控件,并让用户从属性网格的下拉菜单中选择其中一个。
    • @tobeypeters 你知道怎么做吗?我面临同样的要求
    【解决方案2】:

    据我记得,你应该创建一个像这样的枚举:

    enum Person
    {
        Man,
        Woman
    }
    

    然后将你的属性设为 Person 类型。它应该以下拉列表的形式出现在属性中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 2011-05-16
      • 2013-08-09
      • 2019-04-30
      相关资源
      最近更新 更多