Windows использует биты расширенного стиля, чтобы решить, должно ли окно иметь значок на панели задач. Эти стили не доступны напрямую в C #, но должны быть установлены правильно, если ваша форма является обычной формой приложения.
Флаг, управляющий этим, - WS_EX_APPWINDOW
, установленный в расширенных стилях окна формы верхнего уровня. Из CreateWindowEx
документации
WS_EX_APPWINDOW
Вызывает окно верхнего уровня на панель задач, когда окно видно.
Вы можете использовать Spy ++, чтобы увидеть, установлен ли этот флаг для вашего окна или нет. Единственный способ, которым я точно знаю, это установить - использовать interop.
[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong);
[DllImport("user32.dll", SetLastError = true)]
static extern int GetWindowLong(IntPtr hWnd, int nIndex);
const int GWL_EXSTYLE = -20;
const int WS_EX_APPWINDOW = 0x00040000;
int ExStyle = GetWindowLong(form.Handle, GWL_EXSTYLE);
SetWindowLong(form.Handle, GWL_EXSTYLE, new IntPtr(ExStyle | WS_EX_APPWINDOW));