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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как свернуть приложение в трей сразу при загрузке 
:(
    Опции темы
yur4egg
Дата 6.11.2010, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени.

Создал чистую форму с нуля, поместил на нее компонент notifyIcon и кнопку, при нажатии на которою работает код:

notifyIcon1.Visible = true;
Hide();

Все замечательно, иконка появляется в трее. А вот сделать так, чтобы свертка в трей просиходила автоматически при загрузке формы, не получается. Куда я только вышеозначенный код не пихал, сюда

public Form1()
        {
            InitializeComponent();
            notifyIcon1.Visible = true;
            Hide(); 
        }

и сюда:

private void Form1_Load(object sender, EventArgs e)
        {
            notifyIcon1.Visible = true;
            Hide();
        }

и внутрь InitializeComponent(); результат везде одинаков: форма видна на экране, ошибок нет, по кнопке только и сворачивается.
Помогите разобраться, пожалуйста.

Это сообщение отредактировал(а) yur4egg - 6.11.2010, 19:10
PM MAIL   Вверх
Fortnox
Дата 6.11.2010, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 14
Всего: 22



После события Load, вызывается событие Shown, которое показывает форму, даже если до этого был вызван метод Hide.
Поэтому скрытие формы нужно добавить в Shown:
Код

        private void FrmMain_Shown(object sender, EventArgs e)
        {
            notifyIcon1.Visible = true;
            this.Hide();
        }



Это сообщение отредактировал(а) Fortnox - 6.11.2010, 19:33
PM MAIL   Вверх
KelTron
Дата 6.11.2010, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 38



Код

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        PutToTray(true);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        PutToTray(true);
    }

    private void notifyIcon1_Click(object sender, EventArgs e)
    {
        PutToTray(false);
    }

    private void PutToTray(bool isPut)
    {
        this.notifyIcon1.Visible = isPut;
        this.WindowState = (isPut) ? FormWindowState.Minimized : FormWindowState.Normal;
        this.ShowInTaskbar = !isPut;
    }
}





--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
yur4egg
Дата 7.11.2010, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Оба примера выше не работают, форма по-прежнему видна на экране.

Код

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            notifyIcon1.Visible = true;
            Hide();
        }

       private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            Show();
            WindowState = FormWindowState.Normal;
            notifyIcon1.Visible = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            notifyIcon1.Visible = true;
            Hide();
        }

     }

PM MAIL   Вверх
KelTron
Дата 7.11.2010, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 38



Цитата(yur4egg @  7.11.2010,  06:12 Найти цитируемый пост)
Оба примера выше не работают, форма по-прежнему видна на экране.

Примеры рабочие, ищи свои ошибки..


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Hohhi
Дата 7.11.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



KelTron, две копейки позвольте вставить: Alt+tab-ом форма тоже не видна?
PM MAIL ICQ   Вверх
KelTron
Дата 7.11.2010, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 38



В моём примере видна, чтобы была не видна можно изменить код так:
Код

private void PutToTray(bool isPut)
{
    this.notifyIcon1.Visible = isPut;
    this.Visible = !isPut;
    this.ShowInTaskbar = !isPut;

    if (!isPut)
    {
        Activate();
    }
}




--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
yur4egg
Дата 7.11.2010, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(KelTron @ 7.11.2010,  09:46)
Цитата(yur4egg @  7.11.2010,  06:12 Найти цитируемый пост)
Оба примера выше не работают, форма по-прежнему видна на экране.

Примеры рабочие, ищи свои ошибки..

Уважаемый KelTron, расписываю все по шагам:

1. Создаю в Visual Studio новый проект Windows-приложения С#
2. В окно Form1.cs копирую ваш код
3. Нажимаю F5
4. Любуюсь окном "Form1"

Что я делаю не так? Если вы утверждаете, что пример рабочий, добро пожаловать через TeamViewer на мой комп, убедитесь что это не так.
PM MAIL   Вверх
Fortnox
Дата 7.11.2010, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 14
Всего: 22



yur4egg, привяжите события то. В окне свойств формы и notifyicon. Либо в коде.
Например, в конструкторе формы 1:
Код

public Form1()
        {
            InitializeComponent();
            this.Shown += new EventHandler(Form1_Shown);
        }

private void Form1_Shown(object sender, EventArgs e)
        {
            // код
        }


Это сообщение отредактировал(а) Fortnox - 7.11.2010, 15:16
PM MAIL   Вверх
KelTron
Дата 7.11.2010, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 38



Должна быть такая последовательность:
1. Создаю в Visual Studio новый проект Windows-приложения С#
2. В окно Form1.cs копирую ваш код
3. Присоединяю обработчики событий к соответствующим контролам
4. Нажимаю F5
5. Не вижу  окна "Form1"

Методы Form1_Load, button1_Click, notifyIcon1_Click это обработчики событий, если их не привязать к событиям контролов они конечно не будут работать..

Добавлено через 2 минуты и 27 секунд
Fortnox,  скрывать форму в собитии Shown очень весело, при любой попытке отобразить форму она будет сразу же скрываться..)


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
Fortnox
Дата 7.11.2010, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 14
Всего: 22



KelTron, и правда.) Досадно, надо было учесть это.
PM MAIL   Вверх
yur4egg
Дата 7.11.2010, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо всем, теперь все ясно, дело в привязке. Век живи, век учись.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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