Windows forms всплывающее окно с вводом данных

MessageBox с вводом значений C# Решение и ответ на вопрос 219012

Larabrill

0 / 0 / 0

Регистрация: 13.12.2010

Сообщений: 7

1

23.12.2010, 20:10. Показов 60146. Ответов 18

Метки нет (Все метки)


Здравствуйте! В программе есть comboBox1, в котором при выборе значения должно появляться диалоговое окно, в котором можно было бы вводить цифру. Вот только синтаксис написания этого MessageBox я не знаю

C#
1
2
3
4
5
6
7
8
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex == 1)
            {
               
                MessageBox.Show( ? );
            }
        }

Подскажите пожалуйста. Желательно пример

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Новичок)

1 / 1 / 0

Регистрация: 09.12.2010

Сообщений: 36

23.12.2010, 21:41

2

Так?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Add(1);
            comboBox1.Items.Add(2);
            comboBox1.Items.Add(3);
            comboBox1.Items.Add(4);
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            {
                if (comboBox1.SelectedIndex == 1)
                {
                  
                }
            } MessageBox.Show(comboBox1.Text);
        }
        }



0



Dzhej-Dzhej

Заблокирован

25.12.2010, 10:52

3

в C# InputBox нету, можно примерно так написАть:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());
        }
        Form Form2 = new Form();
        ComboBox ComboBox1 = new ComboBox();
        TextBox TextBox1 = new TextBox();
        string str;
        public Form1()
        {
            ComboBox1.Parent = this;
            ComboBox1.Bounds = new Rectangle(0,0,100,20);
            ComboBox1.SelectedIndexChanged += new EventHandler(ComboBox1_SelectedIndexChanged);
            TextBox1.Parent = Form2;
            TextBox1.Bounds = new Rectangle(0, 0, 100, 20);
            Form2.Bounds = new Rectangle(0, 0, 100, 50);
            Form2.StartPosition = FormStartPosition.CenterParent;
            ComboBox1.Items.Add("1");
            ComboBox1.Items.Add("2");
            ComboBox1.Items.Add("3");
        }
 
        void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Form2.ShowDialog();
            str=TextBox1.Text;
            MessageBox.Show(str);
            str = "";
        }
    }
}



2



0 / 0 / 0

Регистрация: 13.12.2010

Сообщений: 7

25.12.2010, 19:27

 [ТС]

4

Спасибо, уже сделала вторую форму))



0



eji

132 / 132 / 29

Регистрация: 17.09.2010

Сообщений: 288

31.12.2010, 23:43

5

Вот, может пригодится. Подключаете библиотеку к проекту и достаточно написать две строчки:

C#
1
2
InputBox.InputBox inputBox = new InputBox.InputBox();
MessageBox.Show(inputBox.getString());

Вложения

Тип файла: rar InputBox.rar (13.5 Кб, 1961 просмотров)



10



385 / 318 / 18

Регистрация: 26.05.2009

Сообщений: 2,696

01.01.2011, 16:24

6

Человек у вас спрашивал как сделать MessageBox с полем ввода, а вы что предлагаете?
Ответ: никак. Надо сделать еще одну форму. Как Вы уже и сделали.



0



132 / 132 / 29

Регистрация: 17.09.2010

Сообщений: 288

01.01.2011, 16:37

7

body90, честно говоря, не совсем Вас понял. Мой код просто показывает как получить введенную строку. Для себя обнаружил удобство, подключил библиотеку и все есть, не нужно создавать формы в каждом проекте, где это необходимо.



0



18 / 18 / 6

Регистрация: 28.02.2011

Сообщений: 514

01.02.2016, 17:06

8

Спасибо ))))
Прям готовое и прям в руки, редко тут такое бывает )))))



0



0 / 0 / 0

Регистрация: 28.07.2015

Сообщений: 3

01.02.2017, 08:32

9

Спасибо. Работает как надо.



0



0 / 0 / 0

Регистрация: 15.07.2016

Сообщений: 12

30.11.2017, 04:40

10

fufel, потому что самому нужно думать, ибо после определенного уровня сложности некому будет «прям готовое и прям в руки» делать.



0



1 / 1 / 0

Регистрация: 11.01.2017

Сообщений: 28

10.04.2019, 00:58

11

Вы герой! Спасибо за либу, очень удобно



0



1 / 1 / 0

Регистрация: 11.01.2017

Сообщений: 28

10.04.2019, 01:22

12

Немного причесал проект eji и добавил небольшую настраиваемость при инициализации



1



46 / 20 / 5

Регистрация: 29.12.2015

Сообщений: 1,771

04.03.2021, 12:41

13

У меня возник вопрос по этой теме.
К слову вроде бы в Windows есть диалоговые окна с вводом значений. Неужели в .NET их нету?
Если есть то как вызвать или создавать свое что весьма муторно если нужно делать копию MessageBox



0



🙋 🐗

3278 / 2869 / 660

Регистрация: 13.04.2015

Сообщений: 6,779

04.03.2021, 12:44

14

Цитата
Сообщение от Alexandr_7
Посмотреть сообщение

Неужели в .NET

В VB.NET есть.



0



46 / 20 / 5

Регистрация: 29.12.2015

Сообщений: 1,771

04.03.2021, 12:49

15

Да. InputBox но учитывая его работу в Delphi это малость годится. Ведь обязательно должны быть кнопке не только ввода но и отмены. И отследить какая из кнопок нажаты.



0



🙋 🐗

3278 / 2869 / 660

Регистрация: 13.04.2015

Сообщений: 6,779

04.03.2021, 12:55

16

Цитата
Сообщение от Alexandr_7
Посмотреть сообщение

Ведь обязательно должны быть кнопке не только ввода но и отмены.

Есть там всё из коробки. Только не знаю, как проще без плясок в C# использовать, иногда действительно не хватает.

Миниатюры

MessageBox с вводом значений
 



1



🙋 🐗

3278 / 2869 / 660

Регистрация: 13.04.2015

Сообщений: 6,779

04.03.2021, 13:16

17

Всё оказалось проще простого. Надо было только добавить ссылку на Microsoft.VisualBasic

Миниатюры

MessageBox с вводом значений
 



0



Администратор

Эксперт .NET

15238 / 12277 / 4903

Регистрация: 17.03.2014

Сообщений: 24,879

Записей в блоге: 1

04.03.2021, 14:33

18

Цитата
Сообщение от Alexandr_7
Посмотреть сообщение

К слову вроде бы в Windows есть диалоговые окна с вводом значений. Неужели в .NET их нету?

В Windows нет стандартного диалога для ввода значений. Уже упомянутый InputBox это самописный класс. Используйте его или напишите свой если не хочется иметь зависимость на сборку Microsoft.VisualBasic.



0



46 / 20 / 5

Регистрация: 29.12.2015

Сообщений: 1,771

04.03.2021, 20:40

19

Цитата
Сообщение от I can
Посмотреть сообщение

Есть там всё из коробки. Только не знаю, как проще без плясок в C# использовать, иногда действительно не хватает.

Кнопка отмена есть. Но проверка на нажатие кнопки ок или отмены нет. Видимо при отмене возращает пустую строку но в принципе не важно сделал свой через форму.



0



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

Для начало создадим обычное приложение WinForm и разместим на нем кнопку при нажатии на которое будем выводить сообщения.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

using System;

using System.Windows.Forms;

namespace Сообщения

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

        }

    }

}

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

private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru»);

        }

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

private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт»);

        }

В следующем примере нам придется использовать MessageBoxButtons в качестве передаваемого аргумента. Однако он имеет несколько параметров:

  • MessageBoxButtons.AbortRetryIgnore – Прервать | Повтор | Пропустить
  • MessageBoxButtons.OK — ОК
  • MessageBoxButtons.OKCancel — ОК | Отмена
  • MessageBoxButtons.RetryCancel — Повтор | Отмена
  • MessageBoxButtons.YesNo — Да | Нет
  • MessageBoxButtons.YesNoCancel — Да | Нет | Отмена

Это нам позволит разместить в диалоговом окне сообщение кнопку или кнопки, в зависимости от параметров.

Рассмотрим все примеры с использованием кнопок:

Вариант AbortRetryIgnore

private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.AbortRetryIgnore);

        }

Вариант OK

В этом варианте у нас ничего не измениться так как он используется по умолчанию, выводит кнопку Ok.

Вариант OKCancel

private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OKCancel);

        }

Вариант RetryCancel Диалоговое окно подходит для вывода сообщения пользователю с возможностью повторения какого либо действия, имея в функционале диалогового окна две кнопки Повтор, Отмена.

private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.RetryCancel);

        }

Вариант YesNo Диалоговое окно подходит для вывода сообщения пользователю с возможностью выбора, подтвердить или отказаться имя в функционале диалогового окна две кнопки Да, Нет.

private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.YesNo);

        }

Вариант YesNoCancel Диалоговое окно подходит для вывода сообщения пользователю с возможностью выбора, подтвердить или отказаться имя в функционале диалогового окна три кнопки Да, Нет, Отмена.

private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.YesNoCancel);

        }

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

MessageBoxIcon.Error Диалоговое окно подходит для вывода сообщения пользователю об ошибке.

private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OK, MessageBoxIcon.Error);

        }

MessageBoxIcon.Information Диалоговое окно подходит для вывода сообщения пользователю о какой то информации.

   private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

MessageBoxIcon.None

Данные вариант стоит по умолчанию и не выводит никого изображения.

MessageBoxIcon.Question Диалоговое окно подходит для вывода сообщения пользователю о помощи.

  private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OK, MessageBoxIcon.Question);

        }

MessageBoxIcon.Warning Диалоговое окно подходит для вывода сообщения пользователю об ошибке или опасности.

  private void button1_Click(object sender, EventArgs e)

        {

            MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OK, MessageBoxIcon.Warning);

        }

MessageBoxIcon.Exclamation

private void button1_Click(object sender, EventArgs e)

        {

         MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

        }

MessageBoxIcon.Stop

private void button1_Click(object sender, EventArgs e)

        {

         MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OK, MessageBoxIcon.Stop);

        }

MessageBoxIcon.Asterisk

private void button1_Click(object sender, EventArgs e)

        {

         MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

        }

MessageBoxIcon.Hand

private void button1_Click(object sender, EventArgs e)

        {

         MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.OK, MessageBoxIcon.Hand);

        }

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

DialogResult может принимать следующие значения:

  • DialogResult.Abort —  Прервать
  • DialogResult.Cancel — Отмена
  • DialogResult.Ignore — Пропустить
  • DialogResult.No —  Нет
  • DialogResult.Yes —  Да
  • DialogResult.OK —  ОК
  • DialogResult.Retry —  Повтор

  DialogResult resualt=  MessageBox.Show(«nookery.ru», «Сайт», MessageBoxButtons.YesNo);

А что бы посмотреть что хранить переменная resualt мы можем вывести ее в сообщении :

MessageBox.Show(resualt.ToString());

В моем примере я нажал на кнопку Да и вывелось сообщения

В этих примерах мы рассмотрели возможность вывода сообщений пользователю, на основе диалоговых окно в WinForm.

C# MessageBox in Windows Forms displays a message with the given text and action buttons. You can also use MessageBox control to add additional options such as a caption, an icon, or help buttons. In this article, you’ll learn how to display and use a MessageBox in C# WinForms app. You will also learn how to use C# MessageBox class dynamically in code samples. 

C# MessageBox

MessageBox class has an overloaded static Show method that displays a message box with a message and action buttons. The action buttons can be OK and Cancel, Yes and No etc. Here are some of the options that can be used in C# message box.

Simple MessageBox

The simplest form of a MessageBox is a dialog with a text and OK button. When you click OK button, the box disappears.

The following code snippet creates a simple Message Box.

  1. string message = «Simple MessageBox»;  
  2. MessageBox.Show(message);  

MessageBox with Title

The following code snippet creates a simple MessageBox with a title. 

  1. string message = «Simple MessageBox»;  
  2. string title = «Title»;  
  3. MessageBox.Show(message, title);  

MessageBox with Title

MessageBox with Buttons

A MessageBox can have different button combinations such as YesNo and OKCancel. The MessageBoxButtons enumeration represents the buttons to be displayed on a MessageBox and has following values.

  • OK
  • OKCancel
  • AbortRetryIgnore
  • YesNoCancel
  • YesNo
  • RetryCancel

The following code snippet creates a MessageBox with a title and Yes and No buttons. This is a typical MessageBox you may call when you want to close an application. If the Yes button is clicked, the application will be closed. The Show method returns a DialogResult enumeration.

  1. string message = «Do you want to close this window?»;  
  2. string title = «Close Window»;  
  3. MessageBoxButtons buttons = MessageBoxButtons.YesNo;  
  4. DialogResult result = MessageBox.Show(message, title, buttons);  
  5. if (result == DialogResult.Yes) {  
  6.     this.Close();  
  7. else {  
  8.       
  9. }  

MessageBox with Buttons


MessageBox with Icon

A MessageBox can display an icon on the dialog. A MessageBoxIcons enumeration represents an icon to be displayed on a MessageBox and has the following values.

  • None
  • Hand
  • Question
  • Exclamation
  • Asterisk
  • Stop
  • Error
  • Warning
  • Information

The following code snippet creates a MessageBox with a title, buttons, and an icon.

  1. string message = «Do you want to abort this operation?»;  
  2. string title = «Close Window»;  
  3. MessageBoxButtons buttons = MessageBoxButtons.AbortRetryIgnore;  
  4. DialogResult result = MessageBox.Show(message, title, buttons, MessageBoxIcon.Warning);  
  5. if (result == DialogResult.Abort) {  
  6.     this.Close();  
  7. }  
  8. elseif(result == DialogResult.Retry) {  
  9.       
  10. }  
  11. else {  
  12.       
  13. }  

MessageBox with Icon 

MessageBox with Default Button

We can also set the default button on a MessageBox. By default, the first button is the default button. The MessageBoxDefaultButton enumeration is used for this purpose and it has the following three values.

  • Button1
  • Button2
  • Button3

The following code snippet creates a MessageBox with a title, buttons, and an icon and sets the second button as a default button.

  1. string message = «Do you want to abort this operation?»;  
  2. string title = «Close Window»;  
  3. MessageBoxButtons buttons = MessageBoxButtons.AbortRetryIgnore;  
  4. DialogResult result = MessageBox.Show(message, title, buttons, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);  
  5. if (result == DialogResult.Abort) {  
  6.     this.Close();  
  7. }  
  8. elseif(result == DialogResult.Retry) {  
  9.       
  10. }  
  11. else {  
  12.       
  13. }  

MessageBox with Default Button

MessageBox with Message Options

MessageBoxOptions enumeration represents various options and has the following values.

  • ServiceNotification
  • DefaultDesktopOnly
  • RightAlign
  • RtlReading

The following code snippet creates a MessageBox with various options.

  1. DialogResult result = MessageBox.Show(message, title, buttons,  
  2. MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2,  
  3. MessageBoxOptions.RightAlign|MessageBoxOptions.RtlReading);  

MessageBox with Message Options

MessageBox with Help Button

A MessageBox can have an extra button called Help button. This is useful when we need to display a help file. The following code snippet creates a MessageBox with a Help button.

  1. DialogResult result = MessageBox.Show(message, title, buttons,  
  2. MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2,  
  3. MessageBoxOptions.RightAlign, true );  

MessageBox with Help Button

We can also specify a help file when the Help button is clicked. The following code snippet references a help file.

  1. DialogResult result = MessageBox.Show(message, title,  
  2. buttons, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, 0, «helpfile.chm»);  

Summary

In this article, we discussed how to create and use a MessageBox in a Windows Forms application.

Последнее обновление: 31.10.2015

Как правило, для вывода сообщений применяется элемент 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.Show(
        "Выберите один из вариантов", 
        "Сообщение", 
        MessageBoxButtons.YesNo, 
        MessageBoxIcon.Information, 
        MessageBoxDefaultButton.Button1, 
        MessageBoxOptions.DefaultDesktopOnly);
}

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)
{
    DialogResult result = MessageBox.Show(
        "Окрасить кнопку в красный цвет?", 
        "Сообщение", 
        MessageBoxButtons.YesNo, 
        MessageBoxIcon.Information, 
        MessageBoxDefaultButton.Button1, 
        MessageBoxOptions.DefaultDesktopOnly);
		
	if (result == DialogResult.Yes)
        button1.BackColor=Color.Red;
    
	this.TopMost = true;
}

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

Понравилась статья? Поделить с друзьями:
  • Windows forms projects with c in visual studio 2019
  • Windows forms how to close window
  • Windows forms designer is not supported for project targeting net core
  • Windows forms datetimepicker как выбрать время
  • Windows forms combobox значение по умолчанию