Если у меня есть пользовательский элемент управления, в котором я переопределяю OnPaint() для отображения пользовательской графики. Почему это не отображается при просмотре элемента управления в режиме дизайна визуальной студии?Как получить настраиваемые пользовательские элементы управления для отображения в режиме разработки?
Пользовательский элемент управления будет отображаться пустым при просмотре в режиме разработки. Однако, если элемент управления добавлен в форму, которая просматривается в режиме разработки, она будет черной.
public partial class MyUserControl : UserControl
{
public MyUserControl()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.Clear(Color.Black);
base.OnPaint(e);
}
}
Есть ли что-нибудь, что я могу сделать, чтобы это отображалось при просмотре элемента управления в режиме разработки?
Не уверен, что делать, но это то же самое, что и с формой: его событие Paint также не будет использоваться дизайнером. [Это может помочь ..] (http://www.codeproject.com/ Статьи/13531/Targeting-Design-Time-Events-of-User-Controls) – TaW
Во время разработки дизайнер создает базовый класс класса, который вы проектируете. UserControl.OnPaintBackground() рисует BackColor и UserControl.OnPaint() ничего не рисует. Когда вы отбрасываете UserControl в форме, он больше не находится в режиме разработки, и вы можете увидеть, что ваш метод OnPaint(). Вы можете получить другой пользовательский элемент управления от этого, и вы увидите черный во время разработки. –
Вау, это хорошо знать и довольно простой способ «решить» проблему. – TaW