Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> notifiIcon и MDI форма, Проблемы при сворачивании/появлении 
:(
    Опции темы
Syrex
Дата 6.4.2010, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 9.2.2006
Где: Москва

Репутация: нет
Всего: 1



Добрый день. 
Есть MDI форма и notifyIcon
В MDI форме создаю Child форму (создается ннажатием на пункт MenuStrip MDI формы

при минимизации окна хочу свернуть программу в трей
Код

private void MDI_F_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)
            {
                notifyIcon.Visible = true;
                this.ShowInTaskbar = false;
            }
        }



при двойном клике на notifyIcon в трее хочу обратно развернуть приложение
Код

private void NIMain_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
            //foreach (Form fm in this.MdiChildren)
            //{
            //    MessageBox.Show(fm.Name.ToString() + "\n1\n" + fm.WindowState.ToString());// 
            //    fm.WindowState = FormWindowState.Maximized;
            //    MessageBox.Show(fm.Name.ToString() + "\n2\n" + fm.WindowState.ToString());// 
            //}

            NIMain.Visible = false;
            this.ShowInTaskbar = true;
        }

Если неоткрыто никаких дополнительных Child форм - то все нормально.

Но если есть открытые, то судя по поведению программы они как-бы пересоздаются

Код для вызова Child формы
Код

private void menuStrip_Click(object sender, EventArgs e)
        {
            ChildF CH = new ChildF();
            CH.MdiParent = this;
            CH.WindowState = FormWindowState.Maximized;            
            CH.Show();
        }


Заметил, что если не делать 
this.ShowInTaskbar = false;
то работает все нормально.

Вопрос: Как правильно сделать сворачивание в трей программы?! (С экрана должна "исчезнуть" форма и кнопка в панели задач, а также появиться иконка программы в трее)
PM MAIL ICQ   Вверх
Voyager
Дата 6.4.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 3
Всего: 18



ShowInTaskbar пересоздает форму (вызывается RecreateHandle), такая вот фича от Microsoft. Как вариант - использовать API-функции Windows.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.