C# Forms - 无法将继承的控件移动到 table

C# Forms - Can't move inherited control into table

让用户控件 A 包含按钮 bA 和用户控件 AChildA 继承并包含 TableLayoutPanel.

如果我想要 ChildA 中继承的按钮 bA,而不是放在 A 中的位置,而是放在 ChildATableLayoutPanel,我该怎么办?

我确实将 bA 的可见性从 private 更改为 protected,但不是 Locked。但是,当我在 ChildA 内移动继承按钮 bA 时,它可以按预期移动,但不能在 ChildATableLayoutPanel 内移动。这就像我可以移动 bA,但不能在 ChildA 内改变它的父项,为什么?任何解决方法?谢谢。

设计器似乎不支持这种功能,但如果您愿意,可以通过编程方式实现。

在 AChild 控件的构造函数中,您只需将按钮添加到 tableLayoutPanel1:

    public partial class AChild: A
    {
        public AChild()
        {
            InitializeComponent();
            tableLayoutPanel1.Controls.Add(bA);
        }
    }