Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Свернуть в трей при загрузке

13K
22 апреля 2007 года
Siquell
10 / / 17.01.2006
Доброе время суток!
Есть такая проблема:
программа читает инфу из конфига и если там стоит флаг на сворачивание при старте, то соответственно прячет её в трей.

Как просто свернуть в трей понятно. Возникла проблема сворачивания именно во время запуска программы.

if (splitline[7] == "1")
{
TrayLoadCheckBox.Checked = true;
this.Hide();
}

Вот это не работает. Есть догадки того что не сворачивается так как событие форм_лоад ещё не завершилось.

Помогите, плз, решить проблему.
13K
22 апреля 2007 года
Siquell
10 / / 17.01.2006
Ещё один вопрос возник.

Добавляю программу в автозагрузку через реестр.
При обычном запуске, выводит полный путь к программе так как надо(напр C:\Program Files\Program\prog.exe).

При автозапуске полный путь уже выглядит так (C:\Documents and Settings\USER\prog.exe), причем программа загружается.

Путь к файлу получаю так: System.IO.Path.GetFullPath("prog.exe");
Когда делаю запись в реестр прописывается правильный путь до файла.

Почему так и как этого избежать? =/
13K
23 апреля 2007 года
Siquell
10 / / 17.01.2006
Все... сам разобрался :)

Первый вопрос решил, поместив
this.Hide();
в событие формы Activated.

Второй:
Вместо System.IO.Path.GetFullPath("prog.exe");
Использовал Application.ExecutablePath;
2.1K
10 января 2010 года
FreeWay
142 / / 03.05.2007
Цитата: Siquell
Все... сам разобрался :)

Первый вопрос решил, поместив
this.Hide();
в событие формы Activated.

Второй:
Вместо System.IO.Path.GetFullPath("prog.exe");
Использовал Application.ExecutablePath;



что то у меня не получается, вернее получается, но не правильно(((

вот так при сворачивании окна прячу его в трей

 
Код:
private void main_f_Resize(object sender, EventArgs e)
        {
            if (FormWindowState.Minimized == WindowState)
            {
                notifyIcon.Visible = true;
                Hide();
            }
        }


так кликая по иконке в трее возвращаю окно обратно
 
Код:
private void notifyIcon_Click(object sender, EventArgs e)
        {
            Show();
            WindowState = FormWindowState.Normal;
            notifyIcon.Visible = false;
        }



и так при запуске проги сразу прячу ее в трей
 
Код:
private void main_f_Activated(object sender, EventArgs e)
        {
            if (STRUCT_AppSetting.MinimToTray==1)
            {
                notifyIcon.Visible = true;
                Hide();
            }
        }


казус следующий, прога как положено при сапуске прячеться в терй, когда кликаю по трею, она показываеться и тут же прячеться )))) видать срабатывает событие Activated

можно конечно при запуске булевской переменной присваивать истину, и потом:
 
Код:
private void main_f_Activated(object sender, EventArgs e)
        {
            if (STRUCT_AppSetting.MinimToTray==1 и переменная истина)
            {
                notifyIcon.Visible = true;
                Hide();
            }
        }

но это мне кажеться черезжопный метод, должно что то быть правильней

подскажите как правильно тут изголиться??????
7
10 января 2010 года
@pixo $oft
3.4K / / 20.09.2006
Может,просто не в событии Activate прописывать?Вы правильно поняли–оно сворачивается потому,что происходит это событие.Поэтому форму надо прятать в другом событии.Или через булевскую переменную,это нормальный метод
2.1K
12 января 2010 года
FreeWay
142 / / 03.05.2007
правильней будет засунуть в лоад


Событие Load
Это событие генерируется, когда экземпляр формы впервые загружается в программу, то есть при первом вызове метода Form.Show или Form. Show Dialog для экземпляра формы. Рассмотрим пример:
Form myForm = new Form();
myForm.ShowO; // Здесь срабатывает событие Load
myForm.HideO; // Форма стала невидимой
myForm.ShowO; // Событие Load больше не срабатывает
myForm.CloseO; // Эта команда закрывает и удаляет ф о р м у . . .
myForm.ShowO; // ...а эта - генерирует исключение, поскольку
// объект myForrn уже недоступен



События Activated и Deactivated
Событие Activated многократно срабатывает в течение жизни формы. Оно генерируется, когда форма получает фокус. Так, это происходит при вызове методов
Form.Show, Form. Show Dialog и Form. Activate, а также при активации формы. Обработчик события Activated применяют для автоматической передачи фокуса определенному элементу управления формы, а также для изменения цвета активного эле-
мента управления, чтобы сделать его заметным пользователю.
Напротив, событие Deactivate генерируется, когда форма теряет фокус. Это про-
исходит из-за взаимодействия пользователя с интерфейсом либо при вызове методов Form.Hide или Form.Close(однако метод Form.Close генерирует это событие, только если закрываемая форма является активной). Это событие применяют для про-
верки данных, введенных пользователем.
События Activated и Deactivated генерируются только при перемещении фокуса в
пределах приложения: если переключиться на другое приложение и обратно, ни
одно из них не сработает.


и никаких заморочек с переменными не надо ))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог