Как сделать «всплывающее» (подсказка, выпадающее, всплывающее) окно в Winforms?
Как я могу сделать, как я назову, «всплывающее окно» в WinForms?
Так как я использовал свое собственное выдуманное слово"выскакивать"Позвольте мне привести примеры этого так называемого «всплывающего» окна:
a окно всплывающей подсказки (может выходить за пределы родительской формы, не отображается на панели задач, не является модальным и не захватывает фокус):
a всплывающее меню окно (может выходить за пределы родительской формы, не отображается на панели задач, не является модальным и не захватывает фокус):
a падать окно (может выходить за пределы родительской формы, не отображается на панели задач, не является модальным и не захватывает фокус):
A главное меню окно (может выходить за пределы родительской формы, не отображается на панели задач, не является модальным и не захватывает фокус):
Обновить A выскакивать окно не делает себя«активное» окно при взаимодействии с использованием мыши или клавиатуры (окно «владелец» остается активным окном):
Атрибуты, которые я ищу в этом мифическом «всплывающем окне», таковы:
Можнопростираться вне границ его родительской формы (т.е.это не дочернее окно)не появляется вПанель задач (т.е. эвристика окна, из которого должны появиться окна, не срабатывает, и при этом у нее нет расширенного стиля окна WS_EX_APPWINDOW)не являетсямодальный (Т.е.не отключает своего "владельца")не воруетфокусявляется всегданаверху из его "владельца"не становится "активным" окном при взаимодействии с (владелец остается активным)Приложения Windows уже умеют создавать такие окна. Как я могу сделать это в приложении WinForms?
Смежные вопросыКак мне добиться всего вышеперечисленного в нативном коде?Как мне создать всплывающее окно в Delphi?у меня есть этот собственный код, чтобы показать «всплывающее» окно - какие P / вызывает требуются для выполнения тех же действий в .NET?У меня есть набор P / Invoke в .NET - могу ли я использовать обычную WinForm, переопределяя определенные методы, чтобы добиться того же эффекта?У меня есть WinForm, который я показываю как «всплывающее окно» путем переопределения определенных методов - есть ли встроенныйControl
что может выступить в качестве всплывающего окна для меня?Как смоделировать выпадающее окно в WinForms?Попытка # 1я попробовалShow(onwer) + ShowWithoutActivation
метод:
PopupForm dd = new PopupForm ();
dd.Show(this);
с PopupForm:
public class PopupForm: Form
{
public PopupForm()
{
InitilizeComponent();
}
private void InitilizeComponent()
{
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = false;
}
protected override bool ShowWithoutActivation
{ get { return true; } }
}
Очень почти решил проблему, но потом яобнаруженный напомнили еще одно свойство «всплывающих» окон: они несфокусироваться на их форме "владельца" стать активным при взаимодействии с мышью или клавиатурой.