0

全部,

我试图了解 C# WinForms 如何创建自定义控件。我根据分组框制作了一个自定义控件。根据某些值,我在里面创建了一组不同的控件。
我还成功地将这个控件添加到 Visual Studio 工具箱中,并且可以将它拖放到表单本身上。
由于控件的创建将取决于某些变量,因此我将其设置为此类中的属性。它在 Visual Studio 的属性列表中可见。

这是控件的伪代码。

public partial class MyGroupBox : System.Windows.Forms.GroupBox
{
    private int m_type;
    public RadioButton price;
    public RadioButton rb13;
    public int type
    {
        get { return m_type; }
        set { m_type = value; }
    }

    public MyGroupBox()
    {
        m_type = type;
        InitializeComponent();
        price = new RadioButton();
        if (type == 3)
        {
            rb13 = new RadioButton();
        }
    }

然而,将控件拖到窗体后,我发现在设计器源代码中--Form1.Designer.cs控件创建为:

this.entry = new MyGroupBox(this.components);

因此,当程序运行时,我的空构造函数不会被调用。

我的问题是:

  1. 这个带this.components参数的构造函数是什么?
  2. 由于我无法手动编辑Form1.Designer.cs,如何正确完成这项工作?

先感谢您。

4

0 回答 0