Виклик методу MessageBox.Show в консольному додатку. Формат дати та часу

Програмування консольного додатку повертає тих, хто пам'ятає, в період кінця 1980-х років, коли з'явилися перші персональні комп'ютери з дуже слабкою продуктивністю і невеликою пам'яттю. Для виведення даних Visual Basic має зручний засіб MessageBox.Show, проте його використовують, коли працюють з екранними формами, а не з консоллю. Але в консольному додатку його викликати все-таки можливо. Покажемо на наступному прикладі, як практично це зробити.

Отже, в цьому прикладі слід в консольному додатку вивести у вікно MessageBox поточну дату і час в різних форматах, щоб попутно продемонструвати деякі можливості форматування рядків за допомогою методу String.Format. Запустимо Visual Studio, створимо новий проект, в пункті Visual Basic виберемо шаблон Console Application, задамо ім'я рішення: ДатаЧас.

Далі необхідно в проект додати посилання на бібліотеку, яка містить об'єкт MessageBox. Для цього в пункті меню Project (Проект) виберемо команду Add References (Додати посилання) і в новому вікні в колонці .NET подвійним кліком оберемо посилання System.Windows.Forms. (Рис.1)

Рис.1. Додавання посилання на бібліотеку з об'єктом MessageBox 

Тепер переконаємося, що це посилання додане нами в поточний проект, для чого в пункті меню Project (Проект) виберемо команду ConsoleMessageBox Properties (Властивості: ConsoleMessageBox). Далі, клацнувши покажчиком миші на пункті References (Посилання), побачимо додане в наш проект вибране посилання. Це посилання на бібліотеку (файл) System.Windows.Forms.dll, яка розташована в папці Program Files, куди інстальована середовище .NET Framework. (Рис. 2)

Рис.2. Перевірка наявності в проекті доданого посилання

Щоб забезпечити в програмному коді більш компактні вирази, вставимо рядок:

Imports System.Windows.Forms

 Директива Import служить для імпортування простору імен, яке містить клас MessageBox (див. лістинг).

Imports System.Windows.Forms

Module Module1

    ' Консольний додаток виводить у вікно MessageBox поточну дату

    ' та час в різних форматах, використовуючи String.Format

    Sub Main()

        Dim ДатаЧас = String.Format(

        "(d) — це ""короткий"" формат дати : . . . . . . . . . .  . . {0:d}" +

        vbCrLf +

        "(D) — це ""повний"" формат дати:. . . . . . . . . . . . .  . {0:D}" +

        vbCrLf +

        "(t) — це ""короткий"" формат часу: . . . . . . . . . . . . . {0:t}" +

        vbCrLf +

        "(T) — це ""довгий"" формат часу:. . . . . . . . . . . . . .  {0:T}" +

        vbCrLf +

        "(f) — тут ""повна"" дата та ""короткий"" час: . . . . . . .  {0:f}" +

        vbCrLf +

        "(F) — ""повна"" дата та ""довгий"" час: . . . . . . . . . .  {0:F}" +

        vbCrLf +

        "(g) General — коротка дата та короткий час: . . . . . . . .  {0:g}" +

        vbCrLf +

        "(G) General — ""загальний"" формат: . . . . . . . . . . . .  {0:G}" +

        vbCrLf +

        "пустий формат, такий же як і формат (G). . . . . . . . . . . {0}" +

        vbCrLf +

        "(M) — виводиться лише місяць та число: . . . . . . . . . . . {0:M}" +

        vbCrLf +

        "(U) Universal date/time — час по Гринвiчу. . . . . . . . . . {0:U}" +

        vbCrLf +

        "(Y) — по цьому форматі виводиться лише рік. . . . . . . . .  {0:Y}",

        DateTime.Now)

        MessageBox.Show(ДатаЧас, "Час та дата в різних форматах")

    End Sub

End Module

Запустимо наш додаток, натиснувши клавішу <F5>. В результаті з'явиться чорне вікно консолі, а над ним - діалогове вікно MessageBox (рис. 3).

Рис.3. Виведення поточного часу і дати в різних форматах

Щоб під час виконання програми не з'являлося чорне вікно DOS, виконаємо наступне. У меню Project виберемо пункт ConsoleMessageBox Properties, далі в новому вікні, клацнувши покажчиком миші на пункті Application, виберемо в спадному меню Application type пункт Windows Forms Application (Рис.4.).

Рис.4. Приховування вікна консолі

Тепер наша програма буде працювати без виведення чорного вікна консолі (Рис.5.).

Рис.5. Робота додатку без виведення вікна консолі