Как вывести сообщение в c windows form
Перейти к содержимому

Как вывести сообщение в c windows form

  • автор:

Как вывести сообщение в c windows form

Как правило, для вывода сообщений применяется элемент MessageBox. Однако кроме сообственно вывода строки сообщения данный элемент может устанавливать ряд настроек, которые определяют его поведение.

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

public static DialogResult Show( string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options )

Здесь применяются следующие параметры:

text : текст сообщения

caption : текст заголовка окна сообщения

buttons : кнопки, используемые в окне сообщения. Принимает одно из значений перечисления MessageBoxButtons :

  • AbortRetryIgnore : три кнопки Abort (Отмена), Retry (Повтор), Ignore (Пропустить)
  • OK : одна кнопка OK
  • OKCancel : две кнопки OK и Cancel (Отмена)
  • RetryCancel : две кнопки Retry (Повтор) и Cancel (Отмена)
  • YesNo : две кнопки Yes и No
  • YesNoCancel : три кнопки Yes, No и Cancel (Отмена)

Таким образом, в зависимости от выбора окно сообщения может иметь от одной до трех кнопок.

icon : значок окна сообщения. Может принимать одно из следующих значений перечисления MessageBoxIcon :

  • Asterisk, Information : значок, состоящий из буквы i в нижнем регистре, помещенной в кружок
  • Error, Hand, Stop : значок, состоящий из белого знака «X» на круге красного цвета.
  • Exclamation, Warning : значок, состоящий из восклицательного знака в желтом треугольнике
  • Question : значок, состоящий из вопросительного знака на периметре круга
  • None : значок у сообщения отсутствует

defaultButton : кнопка, на которую по умолчанию устанавливается фокус. Принимает одно из значений перечисления MessageBoxDefaultButton :

  • Button1 : первая кнопка из тех, которые задаются перечислением MessageBoxButtons
  • Button2 : вторая кнопка
  • Button3 : третья кнопка

options : параметры окна сообщения. Принимает одно из значений перечисления MessageBoxOptions :

  • DefaultDesktopOnly : окно сообщения отображается на активном рабочем столе.
  • RightAlign : текст окна сообщения выравнивается по правому краю
  • RtlReading : все элементы окна располагаются в обратном порядке справа налево
  • ServiceNotification : окно сообщения отображается на активном рабочем столе, даже если в системе не зарегистрирован ни один пользователь

Нередко используется один параметр — текст сообщения. Но посмотрим, как использовать остальные параметры. Пусть у нас есть кнопка, в обработчике нажатия которой открывается следующее окно сообщения:

private void button1_Click(object sender, EventArgs e)

MessageBox в Windows Forms

Однако нам не просто дается возможность установки кнопок в окне сообщения. Метод MessageBox.Show возвращает объект DialogResult , с помощью которого мы можем узнать, какую кнопку в окне сообщения нажал пользователь. DialogResult представляет перечисление, в котором определены следующие значения:

  • Abort : нажата кнопка Abort
  • Retry : нажата кнопка Retry
  • Ignore : нажата кнопка Ignore
  • OK : нажата кнопка OK
  • Cancel : нажата кнопка Cancel
  • None : отсутствие результата
  • Yes : нажата кнопка Yes и No
  • No : нажата кнопка No

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

private void button1_Click(object sender, EventArgs e)

И теперь, если в окне сообщения мы выберем выриант Yes, то кнопка окрасится в красный цвет.

Вывод текста в textbox

Author24 — интернет-сервис помощи студентам

Потоки: вывод текста в textBox
Как можно вывести текст в textBox ? например у меня есть 3 textBox мне надо вывести статистику.

Вывод текста в TextBox в столбик
Здравствуйте!Начал осваивать язык С# и начал делать калькулятор, только возникла проблема с выводом.

Многострочный вывод текста из файла в TextBox
Всем привет! Записал в файл текст, там отображается многострочно, а отобразить текст в текстбоксе.

Вывод неоднородного цветного текста в Textbox
Как сделать чтобы текст выводился так Привет : Саша Саев (вот так, как пример) Спасибо всем.

Отправка сообщений в окно «Вывод»

Во время выполнения сообщения в окне вывода можно написать с помощью класса Debug или Trace; оба класса входят в библиотеку классов System.Diagnostics. Класс Debug используется, если необходимо выводить сообщение только в отладочной версии программы. Класс Trace используется в том случае, если необходимо выводить сообщение и в отладочной версии программы, и в выпускаемой.

Методы вывода

Классы Trace и Debug предоставляют следующие методы вывода:

  • Различные методы Write , которые выводят сведения без прерывания выполнения программы. Эти методы заменяют метод Debug.Print , который использовался в предыдущих версиях Visual Basic.
  • Методы System.Diagnostics.Debug.Assert и System.Diagnostics.Trace.Assert, которые прерывают выполнение программы и выводят сведения, если заданное условие не выполняется. По умолчанию метод Assert отображает сведения в диалоговом окне. Дополнительные сведения см. в разделе Утверждения в управляемом коде.
  • Методы System.Diagnostics.Debug.Fail и System.Diagnostics.Trace.Fail, которые всегда прерывают выполнение программы и выводят сведения. По умолчанию методы Fail отображают сведения в диалоговом окне.

В окне вывода также могут отображаться сведения о следующем:

  • Загруженные или выгруженные модули отладчика.
  • Вызванные исключения.
  • Завершившиеся процессы.
  • Завершившиеся потоки.

Связанный контент

  • Безопасность отладчика
  • Окно выходных данных
  • Трассировка и инструментирование приложений
  • Типы проектов C#, F# и Visual Basic
  • Отладка управляемого кода

Как вывести сообщение в консоль из приложения Windows Forms?

введите сюда описание изображения

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

Отслеживать
18.6k 4 4 золотых знака 31 31 серебряный знак 45 45 бронзовых знаков
задан 21 дек 2017 в 13:01
Александр Пузанов Александр Пузанов
2,785 5 5 золотых знаков 32 32 серебряных знака 64 64 бронзовых знака
А у вас консольное приложение?
21 дек 2017 в 13:06
Тогда где должна появляться справка, если юзер запускает программу через проводник?
21 дек 2017 в 13:09

Это понятно. А что должно произойти, если программа запускается не из командной строки с неправильными параметрами? Соответственно, никакой консоли нет.

21 дек 2017 в 13:12
Выведите окно-справку и все проблемы.
21 дек 2017 в 13:13

Сделать приложение изначально консольным: в свойствах проекта поменять Output type на Console Application. Тогда консоль будет выводиться всегда. Даже если запустить приложение не через консоль. При неправильных параметрах в неё можно стандартно вывести любую информацию с помощью Console.WriteLine .

21 дек 2017 в 13:51

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Проблема в том, что cmd.exe не обрабатывает вывод приложений с графическим интерфейсом. При запуске оболочка проверяет флажок в заголовке исполняемого файла, и если приложение оконное, то оно запускается не блокируя консоль. После этого можно запустить другое приложение, выполнять команды, либо вовсе закрыть окно консоли. Соответственно, если после этого в консоли будут выводиться сообщения, то будет неясно от какого процесса они исходят.

Предлагаю рассмотреть альтернативные варианты:

  1. Выводить сообщение об ошибке в графическом интерфейсе. Раз все приложение оконное, то и сообщение логично показывать в интерфейсе.

    С помощью Win32 присоединять консольный вывод к родительскому процессу через AttachConsole и насильно писать в него:

//импорт функции [DllImport("kernel32.dll")] static extern bool AttachConsole(int dwProcessId); //присоединяемся к родительскому процессу AttachConsole(-1) //пишем в консоль Console.WriteLine("Some message"); 

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

  1. Сделать приложение консольным (изменить тип вывода в настройках проекта Visual Studio). В этом случае будет работать вывод в консоль. Недостаток в том, что окно консоли появится даже при запуске в проводнике. Консоль можно скрывать с помощью ShowWindow , но полностью избежать его появления не получится.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *