Ограничить добавление контроля на панели - PullRequest
0 голосов
/ 30 октября 2008

Как я могу ограничить добавление элементов управления в Panel в элементах управления C #? Я должен ограничить пользователя, чтобы добавить элементы управления на панели во время разработки.

Ответы [ 2 ]

1 голос
/ 30 октября 2008

Если вы хотите ограничить типы элементов управления или количество элементов управления, которые можно добавить на панель, вы можете создать собственный подкласс панели и проверить тип элемента управления или счетчик элементов управления в перегрузке метода 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);
        }

    }

}
0 голосов
/ 30 октября 2008

Установите AllowDrop в false.

...