如何创建包含填充列表的自定义控件?

时间:2011-09-11 10:31:48

标签: c# .net vb.net winforms

如何正确创建包含已填充列表的自定义控件?

例如:我需要一个包含产品列表的组合框控件,然后我会在其他项目中重用该控件。

我的代码是:

Public Class ProductCombo
    Inherits ComboBox
    Public Sub New()
        Me.Items.Add("Product 1")
        Me.Items.Add("Product 2")
    End Sub
End Class

并且它有效,但是当我运行项目时,每个项目都是重复的 - 这是因为列表填充了两次。首先,当用户向表单添加控件时,第二个是设计者在项目启动时添加。

我已经找到了一个防止在编辑模式下添加项目的解决方案,但这不是我需要的。我想让它们以编辑模式存在,以便在此时进行编辑。

这个问题有解决方法吗?

1 个答案:

答案 0 :(得分:1)

  protected override void OnCreateControl()
  {
     base.OnCreateControl();
     if (Items.Count == 0)
     {
        Items.Add("Product 1");
        Items.Add("Product 2");
     }
  }