2014-02-06 3 views
0

Мне нужно скрыть свой Form при запуске операционной системы (окна 7).
Чтобы добиться этого, я попробовал решение: -Почему ShowInTaskbar замораживает приложение?

if (Program.Args == "/startup") 
{ 
    this.Hide(); 
    this.ShowInTaskbar = false; 
} 

я имел выше код в моем Form1_Load Event, Program.Args это аргумент командной строки подается в моей программе.

Что не так в приведенном выше коде?

Как я могу скрыть свою форму с помощью аргументов командной строки?

Как некоторые люди предложили использовать
this.WindowState = FormWindowState.Minimized
this.ShowInTaskbar = false Я попробовал, но мои зависания приложения, например: -

enter image description here

Если я закомментируйте строку
this.ShowInTaskBar = false
его выполняется нормально, но отображается значок в панели задач.

Нормальный вид приложения является: -

enter image description here

+0

Ваш код кажется правильным, просто поставьте точку останова в if block и проверьте, правильно ли ваш аргумент или нет. – Arshad

+0

Я предполагаю, что это единственная форма, которая у вас есть. Тогда это основная форма. Это может помочь http://stackoverflow.com/questions/8764745/how-to-hide-the-mainform-and-still-run-the-program http://stackoverflow.com/questions/70272/single-form- hide-on-startup –

+0

@Arshad Я дважды проверял, мои аргументы командной строки верны. –

ответ

0

попробовать что-то подобное изменение видимости. Я получаю код ошибки на вашем коде из-за преобразования Args в строку ... но это работает отлично.

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.Visible = false; 
    this.ShowInTaskbar = false; 
} 
+0

Спасибо за ответ, но 'this.Visible = false' не работает –

+0

Что вы используете в качестве редактора кода и компилятора? Visual Studio 2012 - это то, что я использовал, и все работает отлично. – Ronnie

+0

Я использую Visual Studio 2012, а также в любом случае код должен работать, используете ли вы Visual Studio или обычный csc.exe –

0
private void Form1_Load(object sender, EventArgs e) 
    { 
     this.WindowState = FormWindowState.Minimized; 
     this.ShowInTaskbar = false; 
    } 

Затем создайте иконку для лотка и шоу лотка значок

+0

Это замораживание приложения, проверка отредактированного вопроса –

+0

@ ps06756 Используя конструктор для Visual Studio, вы можете пропустить F11 и посмотреть, замораживается ли он в дизайнере, где размещается ссылка для события загрузки. он застревает там, когда он загружает ваше приложение? – Ronnie

0

В свойствах формы (в VS) установить следующие свойства:

  • ShowInTaskbar = ложь
  • WindowState = Сведено к минимуму

Лучше всего сделать это в форме проектирования VS, но не в событии загрузки. Если вы все еще замораживаете приложение, удалите все остальные коды, кроме события щелчка на значке уведомления, чтобы отобразить окно. Я имитирую его с чистой формой (только кнопка на нем) и не имел проблемы с замораживанием. Вот код, который вы должны выполнить, когда пользователь нажимает на значок уведомления: WindowState = FormWindowState.Normal;

+0

Заморозит приложение, проверьте отредактированный вопрос. –