Я использовал toolstripdropdown в своей форме Windows, чтобы показать список кнопок при нажатии другой кнопки.
var td = new ToolStripDropDown
{
AutoSize = true,
DropShadowEnabled = false,
BackColor = Color.Transparent,
Margin = Padding.Empty,
Padding = Padding.Empty
};
var host = new ToolStripControlHost(panel)
{
BackColor = Color.Transparent,
Margin = Padding.Empty,
Padding = Padding.Empty
};
td.Items.Add(host);
Панель содержит список отображаемых кнопок. Чтобы показать панель пользователю, при нажатии кнопки (Показать) вызывается следующая строка.
td.Show(pointonScreen);
По умолчанию для AutoClose
установлено значение true. Поэтому всякий раз, когда пользователь щелкает в любом месте формы, раскрывающийся список инструментов закрывается. Хорошо.
Мои требования:
- Нажмите кнопку Показать
- Отобразите раскрывающийся список инструментов, вызвав td.show(), и закройте всплывающее окно, если
td.Visible
- Снова нажмите кнопку Показать
- toolstripdown должен быть закрыт
- Щелкните в любом месте формы, раскрывающийся список инструментов должен быть закрыт, если он виден.
Что происходит сейчас, так это то, что на шаге 3, до того, как будет вызвано событие нажатия кнопки, toolstripdropdown закрывается. Итак, снова отображается раскрывающийся список.
Есть ли другой способ выполнить мои требования?