Я не мог найти идеальное решение для этой проблемы, только частичное.Я предполагаю, что вы включили режим проектирования для панелей, следуя подходу, описанному в в этом ответе .
. Для изменения поведения при проектировании панелей требуется предоставить им собственный конструктор.Вот пример класса, который делает это:
using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;
[Designer(typeof(MyPanelDesigner))]
public class MyPanel : Panel {
private class MyPanelDesigner : ScrollableControlDesigner {
public override SelectionRules SelectionRules {
get { return SelectionRules.None; }
}
}
}
Замените панели в вашем UC на MyPanel.Пользовательское свойство SelectionRules гарантирует, что пользователь не сможет легко перетащить панель в другое положение с помощью мыши.Однако свойства Location и Size все еще доступны для редактирования в сетке свойств.Чтобы избавиться от этого, я думаю, вам нужно переопределить PreFilterProperties ().