Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > TopMost не становится топмост


Автор: Prehistorik 30.8.2009, 12:28
Приветствую... Проблема, которую не могу победить. Задача банальная до одури. Развернуть окошко из трея.
Код

    private void HideToTray()
    {
      this.Visible = false;
      this.mainFormNotifyIcon.Visible = true;
    }
    private void ShowFromTray()
    {
      this.TopMost = true;
      this.Visible = true;
      this.Activate();
      this.BringToFront();
      this.mainFormNotifyIcon.Visible = false;
      this.TopMost = false;
    }
    private void MainForm_Resize(object sender, System.EventArgs e)
    {
      if (this.WindowState == FormWindowState.Minimized)
      {
        HideToTray ();
      }
    }
    private void mainFormNotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
    {
      ShowFromTray ();
    }


Только эта формочка у меня появляется ниже всех других окон. Не выскакивает поверх других. Никак. Вообще ((

Автор: diadiavova 30.8.2009, 15:04
А почему оно должно быть поверх, когда у тебя написано
Код

      this.TopMost = false;
?

Добавлено через 2 минуты и 42 секунды
Если тебе надо, чтобы она появилась и была активной, просто вызови метод Activate, в обработчике события Load формы.

Автор: Prehistorik 30.8.2009, 19:04
diadiavova, Смотри. Она по даблклику на нотифае должна показаться поверх всех форм. Для этого я ставлю ей топмост, потом показываю, потом убираю топмост. Но это не пашет. К вопросу об активейт

Код

      this.Activate();
 

Оная строчка присутствует... во всяких вариантах пробовал. Кстати пробывал делать форму топмост без всяких выкрутасов.... То есть при дезайне формы. Чтобы не трогать это свойство в рантайме. Всё равно не помогает.

Добавлено через 6 минут и 22 секунды
Блин. Я тупорыл до нельзя. Простите за беспокойство - 
Код

    private void ShowFromTray()
    {
      this.Show();
      this.Activate();
      this.WindowState = FormWindowState.Normal;
//      this.BringToFront();
      this.mainFormNotifyIcon.Visible = false;
    }


Вот Строчка восстанавливающая WindowState в Нормаль всё решила )) Помечаю, как решенное.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)