В настоящее время я разрабатываю собственный класс управления вкладками, производный от System.Windows.Forms.Control. Проблема в том, что никакие (по крайней мере, ни одно из тех, которые я тестировал, включая события мыши и клавиатуры) не запускаются во время разработки. Для меня это проблема, поскольку невозможность переключения между страницами вкладок в дизайнере весьма неудобна для пользователя. Я проводил некоторые исследования, и мне кажется, что то, что я пытаюсь сделать, невозможно. Это заставило меня задуматься, поскольку многие элементы управления, поставляемые с .NET framework, поддерживают взаимодействие во время разработки. Возьмем для примера 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();
}
}
Вы увидите, что цвет кнопки не меняется во время разработки.