2016-12-07 3 views
1

Итак, в моем установщике у меня есть аргумент командной строки, отправленный моей программе для регистрации сервера, затем создается сообщение с указанием успешной регистрации, затем программа закрывается.Есть ли окно с сообщениями над установщиком или после закрытия приложения?

Теперь проблема заключается в том, что установщик останавливается и ждет закрытия программы, прежде чем продолжить. Другая проблема заключается в том, что это сообщение отображается за окном установщика, поэтому есть шанс, что пользователь может это пропустить, и просто подумайте, что установщик неисправен.

В любом случае, есть ли окно сообщений перед установщиком? Обратите внимание, что я пробовал использовать MessageBox.Show(this, "myMessage");. Однако это фактически не вызывает появления сообщений.

И есть ли способ закрыть приложение, оставив окно сообщения открытым? Или вместо этого сделать установщик продолжением, хотя приложение все еще открыто?

Вот инсталлятор проект я использую:

ответ

-1
MessageBox.Show("MyMessage"); 

Вам не нужно отправить this в качестве первого аргумента. Это обычно подразумевается. Это, как говорится, также не отрицательно влияет на то, что вы пытаетесь сделать. Там может быть множество различных аргументов. Проверьте их здесь: https://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox(v=vs.110).aspx

Вы можете редактировать Caption, Icon 'с, и Button' s в пределах MessageBox.

Если мы увидим остальную часть кода, это поможет решить вашу проблему.

+0

Это совсем не ясно, как это отвечает на вопрос. Вы просто объясняете, как работает MessageBox.Show. Если ваша цель состояла в том, чтобы сказать, что нам нужно увидеть остальную часть кода, чтобы помочь, вы должны были разместить это как комментарий, а не ответ. –

+0

Хорошо, спасибо за этот камень проницательности Коди. Похоже, что мое обращение к нему в MSDN действительно помогло ему решить его проблему, но что я знаю? –

+0

Это был бы еще один убедительный аргумент в пользу того, что он был отправлен как комментарий, поскольку это был толчок в правильном направлении, а не автономный ответ. Чтобы быть ясным, я не собирался вас обижаться на мои комментарии. Я просто не понимаю, как это отвечает на заданный вопрос, что является довольно конкретным вопросом о показе окна сообщения поверх другого приложения/окна, и, хотя информация, которую вы предоставили, безусловно полезна, я думаю, что это быть более подходящим в качестве комментария. У нас есть довольно строгие стандарты вокруг того, что составляет ответ. –

2

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

    MessageBox.Show(
         "Server registered successfully!", 
         "Gyptech Micrometer OPC Server", 
         MessageBoxButtons.OK, 
         MessageBoxIcon.Information, 
         MessageBoxDefaultButton.Button1, 
         MessageBoxOptions.DefaultDesktopOnly); 

Жизненно часть в том, что последний параметр, MessageBoxOptions.DefaultDesktopOnly. Теперь окно показывает над установщиком:)

+0

Это взлом, который не должен быть необходим, если ваш установщик фактически не работает на другом рабочем столе. То, что вы хотите сделать, это указать окно * владельца * для диалогового окна, которое является первым параметром при определенных перегрузках 'Show'.Вы пробовали пройти «это», но вы не сказали, что это было. Это должно быть ваше окно установщика, окно, которое сейчас находится на переднем плане. Таким образом, если он отображает принадлежащее окно, окно, находящееся в собственности, всегда будет впереди, потому что принадлежащее окну всегда находится перед его родителем в порядке Z. –

+0

@CodyGray Это имеет большой смысл ... Просто не уверен, как это сделать. Ухм, говоря с точки зрения синтаксиса, как мне написать что-то вроде '' thisInstallerWindow'' вместо того, чтобы просто «это»? –

+0

@CodyGray, если вы знаете, как закодировать ответ, который вы предложили, не могли бы вы вносить его в качестве ответа с примером кода? Это, вероятно, поможет мне лучше всего. :) –