如何在C#窗口控件中限制在Panel中添加控件?我必须限制用户在设计时在面板中添加控件。
答案 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。