Я стараюсь избегать мерцания при рисовании на панели. я нашел хорошее решение, чтобы получить первый класс из класса PanelОшибка при попытке получить класс из класса Panel в C#
public class DoubleBufferedPanel : Panel
{
public DoubleBufferedPanel()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.UserPaint, true);
}
}
затем заменить (что naturall) System.Windows.Forms.Panel с DoubleBufferedPanel в классе designer.cs. Он отлично работает для меня, но он занят тем, что не может перейти к Form1 [Design] из-за следующей ошибки: Служба Service.Windows.Forms.Design.ISelectionUIService уже существует в контейнере службы. Имя параметра: serviceType
Ошибка появляется, даже когда я просто копирую - вставьте класс DoubleBufferedPanel в мою Form1.cs System.Windows.Forms.Panel с DoubleBufferedPanel.
Есть ли способ избежать такой ошибки? Я могу справиться с этим, потому что моя программа отлично работает, когда я запускаю ее, но у меня нет доступа к Form1 [Design].
Возможно, есть некоторые проблемы с непосредственным изменением Designer.cs таким образом. Вы можете попытаться создать свой контроль более стандартным образом https://msdn.microsoft.com/en-us/library/5h0k2e6x(v=vs.100).aspx и затем добавить его в конструктор из панели инструментов http : //stackoverflow.com/questions/3446429/how-to-put-a-usercontrol-into-visual-studio-toolbox –