0

如何限制在 C# 窗口控件中的面板中添加控件?我必须限制用户在设计时在面板中添加控件。

4

2 回答 2

1

如果您想限制可以添加到面板的控件类型或控件数量,您可以创建自己的面板子类,并在 Controls.Add 方法的重载中检查控件类型或控件计数。

编辑:重载 Controls.Add 方法并不像我想象的那么容易,但是您可以创建一个扩展 Panel 类的新类并重写 OnControlAdded 方法以检查添加的控件类型。像这样的东西应该工作:

class MyPanel : Panel
{

    public MyPanel()
    { }

    protected override void OnControlAdded(ControlEventArgs e)
    {
        base.OnControlAdded(e);

        if (!(e.Control is Label))
        {
            MessageBox.Show("control " + e.Control.Name + " is not a label but a " + e.Control.GetType().ToString());
            Controls.Remove(e.Control);
        }

    }

}
于 2008-10-30T11:59:06.597 回答
-1

将 AllowDrop 设置为 false。

于 2008-10-30T11:40:30.033 回答