Я использовал toolstripdropdown в своей форме Windows, чтобы отобразить список кнопок при нажатии другой кнопки.C# Winfoms Toolstripdropdown close on button click
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. Поэтому всякий раз, когда пользователь щелкает в любом месте формы, toolstripdropdown закрывается. Хорошо.
Мои требования:
- Нажмите кнопку Показать
- Выводят toolstripdropdown по телефону td.show() и закрыть всплывающее окно, если
td.Visible
- Снова нажмите на кнопку Показать
- toolstripdrown должны быть закрыты
- Щелкните в любом месте формы, toolstripdropdown следует закрыть, если он виден
Что происходит сейчас, на шаге 3 до того, как событие нажатия кнопки будет поднято, toolstripdropdown закрывается. Таким образом, всплывающее окно отображается.
Есть ли другой способ для выполнения моих требований?
Отлично ... «this.button1. Bounds.Contains (this.PointToClient (MousePosition)) "это линия, которую я пропустил. Большое спасибо .... ты спас мой день .... – Rocky
Добро пожаловать @Rocky. –