限制在Panel上添加控件

时间:2008-10-30 11:27:48

标签: windows .net-2.0 panel

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

2 个答案:

答案 0 :(得分:1)

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

编辑:重载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);
        }

    }

}

答案 1 :(得分:-1)

将AllowDrop设置为false。