В настоящее время я разрабатываю пользовательский класс управления вкладками, который является производным от System.Windows.Forms.Control.
Проблема в том, что ни одно (по крайней мере, ни одно из тех, что я тестировал, включая события мыши и клавиатуры) не запускалось во время разработки.
Это проблема для меня, так как невозможность переключения между вкладками в конструкторе довольно неудобна для пользователя. Я проводил некоторые исследования, и кажется, что то, что я пытаюсь достичь, невозможно. Это заставило меня задуматься, так как многие элементы управления, поставляемые с платформой .NET, поддерживают взаимодействие во время разработки. Возьмите TabControl в качестве примера. Вы можете легко переключаться между его страницами во время проектирования.
Итак, мой вопрос: есть ли способ заставить события мыши и клавиатуры работать во время разработки?
Кроме того, извините, что я не предоставил фрагмент кода. Но я не думаю, что это действительно необходимо. Для тех из вас, кто хочет попробовать это, вот простой класс кнопок, который я быстро создал:
public class MyButton : Control
{
private bool hover = false;
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Color color = hover ? Color.DarkBlue : Color.Blue;
e.Graphics.FillRectangle(new SolidBrush(color), DisplayRectangle);
e.Graphics.DrawRectangle(Pens.Black, new Rectangle(DisplayRectangle.Location, new Size(DisplayRectangle.Width - 1, DisplayRectangle.Height - 1)));
}
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
hover = true;
Refresh();
}
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
hover = false;
Refresh();
}
}
Вы увидите, что цвет кнопки не изменяется во время разработки.