Я расширил ComboBox для переопределения события OnSelectedIndexChanged
. Контроль работает как задумано. Когда форма, на которую был помещен элемент управления, открывается, отображается элемент управления. После запуска приложения в режиме отладки и просмотра формы (которая была открыта при запуске отладки) элемент управления не отображается. Это все еще там, просто не видно. Если форма закрывается и открывается снова, элемент управления становится видимым.
Вот пример моего расширенного поля со списком:
using System;
using System.ComponentModel;
namespace CustomControls
{
public partial class ComboBoxSN : ComboBox
{
private bool _haltSelection = false;
/// <summary>
/// Set whether to run the selectedindex event for the control
/// </summary>
[Description("Set this to true to keep the selected index from firing"), Category("CustomControl"), DefaultValue(false), Browsable(true)]
public bool HaltSelection
{
get { return _haltSelection; }
set { _haltSelection = value; }
}
protected override void OnSelectedIndexChanged(EventArgs e)
{
if (!_haltSelection)
base.OnSelectedIndexChanged(e);
}
}
}
Расширенным элементом управления является Панель инструментов. Я удалил и снова добавил элемент управления на панель инструментов, как это было предложено на другом сайте, но безуспешно.