Путь разработчика    

Отобразить диалоговые формы многократного использования в C#

Рекомендуем: Как открутить болт-секретку на колесе авто без специального ключа
eda2480d

Пример Сделать диалог со стандартным диалогом функции на C# показывают наиболее распространенный подход к созданию диалогов. Всякий раз, когда ему нужно отображать диалог, основная программа инициализирует новый экземпляр и отображает его. Если пользователь нажимает «ОК», основная программа сохраняет значения диалогового окна.

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

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

Чтобы пользователь скрыл диалоговое окно, он отображает кнопку «Скрыть», которая выполняет следующий код.

Python

Пользователь все равно может попытаться закрыть диалог другими способами, например нажатием Alt + F4 или нажатием кнопки X в строке заголовка формы. Один из способов предотвратить это - установить свойство ControlBox в диалоговом окне false для удаления кнопок X, минимизации и максимизации. Это хорошо работает, если вам не нужно позволять пользователю минимизировать или максимизировать диалог, но неудобно, если пользователь может захотеть сделать диалог действительно большим.

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

Python

Этот код отменяет закрытие, а затем скрывает диалог, а не закрывает его.

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

Python

Переменная класса TheReusableForm содержит ссылку на диалог и инициализируется при загрузке формы.

Когда вы нажимаете кнопку «Многоразовая форма», обработчик события отображает диалоговое окно, а затем вызывает его метод Активировать. Этот метод устанавливает фокус на диалог и выталкивает его вверх. Это полезно, если форма уже видна и, возможно, находится за основной формой программы или другой программой на рабочем столе.

Вы можете передать основную форму в метод Show, чтобы сделать основную форму владельцем диалогового окна, но это вызывает некоторые проблемы. Самое сложное, что основная форма не будет закрыта до тех пор, пока ее собственные формы не будут закрыты. Поскольку обработчик событий FormClosing диалогового окна не позволяет закрыть диалоговое окно, это проблема. Работа над этой проблемой - достаточно большая проблема, которая, вероятно, не стоит того.

Итак, почему вы использовали бы эту технику вместо предыдущей, которая будет использовать новый экземпляр диалога каждый раз, когда это необходимо? Преимущество этого метода заключается в том, что диалог отображается немодально, чтобы пользователь мог постоянно поддерживать его в фоновом режиме. (Обратите внимание, что вы также можете отображать его, если хотите, модально.) Это может сделать его полезным для отображения и настройки параметров, которые используются основной программой.

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

Источник: http://csharphelper.com/blog/2017/05/display-reusable-dialog-forms-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:


Программирование на Java и С# для студента (О. В. Герман, Ю. О Герман)

Рассмотрены основные вопросы программирования на языках JAVA и С#, включая их сравнительное описание как двух важнейших и весьма сходных прикладных платфор...

21 06 2021 19:43:56

Воспроизведение файлов WAV в C#

Класс System.Media.SoundPlayer позволяет вам легко воспроизводить файлы WAV. В этом примере используется следующий PlayWav метод для воспроизведения файлов...

20 06 2021 14:25:44

Нарисуйте масштабированное нормальное распределение в C#

Пример Нарисовать нормальную кривую распределения в C# показывает, как для нормального распределения. К сожалению, для некоторых средств и стандартных откл...

19 06 2021 18:39:36

Легко передавать текст в программе WPF с использованием C#

Пример Рендеринг текста в программе WPF с использованием C# объясняет, как рисовать текст в коде WPF. В этом примере используется следующий метод расширени...

18 06 2021 3:20:17

Каковы различия между ArrayList и Vector в Java?

Java ArrayList и Vector реализуют интерфейс List и поддерживают порядок вставки. Но между ArrayList и Vector есть некоторые отличия. Java ArrayList и Vecto...

17 06 2021 19:31:26

Перемещение формы без заголовка в C#

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

16 06 2021 18:49:33

Как найти пятницу тринадцатое в C#

Код сначала очищает результат ListBox. Затем он получает даты начала и окончания и использует их для получения номеров начала и конца года. Далее программа...

15 06 2021 19:25:19

Что такое карта, фильтр и сокращение в python?

При работе над программированием на Python вы неизбежно сталкиваетесь с ситуациями, когда вам приходится выполнять некоторые манипуляции с данными. В больш...

14 06 2021 2:15:59

Существует ли файл или каталог в Python

Os.path.isfile (путь) Возвращает True , если путь существующий обычный файл. Пример: Если файл «my_file.txt» существует в текущем пути, он вернет true else...

13 06 2021 4:12:40

Используйте двойную буферизацию, чтобы предотвратить мерцание в PictureBox в C#

Пример Использование двойной буферизации для предотвращать мерцание при рисовании на C# показывает, как сделать форму, использующую двойную буферизацию для...

12 06 2021 1:46:38

Список уникальных слов в текстовом файле в C#

В этом примере используются регулярные выражения и LINQ для отображения уникальных слов, содержащихся в текстовом файле на C#. Когда вы вводите имя файла и...

11 06 2021 5:54:40

Генерация слов заданной длины в C#

Пример Создание трехбуквенных слов в C# использует три вложенных цикла для генерации слов, содержащих три буквы. В этом примере используется следующий код...

10 06 2021 5:47:36

Список окон рабочего стола на C#

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

09 06 2021 14:20:34

Как записать write() в файл Python

После изучения того, как открыть и закрыть файл в Python , откройте файл, тогда мы напишем в него случайный текст с помощью метода write() . Чтобы записать...

08 06 2021 2:21:53

Отправлять распечатку непосредственно на конкретный принтер в C#

Код устанавливает имя принтера, а затем вызывает метод PrintDocument объекта Print для немедленной отправки распечатки на этот принтер. Источник: http://cs...

07 06 2021 22:11:44

Список всех файлов в папке в Java

Как читать все .txt-файлы в папке Подсчет количества файлов в каталоге с помощью Java Источник: http://net-informations.com/Java/files/folder.htm...

06 06 2021 14:20:31

Инициализировать словарь в C#

Сообщение Инициализация двумерных массивов в C# объясняет как инициализировать двумерный массив. Хотя Dictionary является более сложным типом данных, вы мо...

05 06 2021 22:41:48

Что такое ключевое слово instanceof в Java?

Java instanceof - это ключевое слово. Это двоичный оператор, используемый для проверки, является ли объект (экземпляр) подтипом данного типа. Он возвращает...

04 06 2021 10:43:41

Современные языки программирования: список 2018

Список современных языков программирования на 2018 год. Чтобы определиться с конкретным языком программирования для изучения (одним или несколькими) нужно для начала ответить себе на вопрос:...

03 06 2021 6:34:47

Методы расширения прямоугольника в C#

В этом примере показано, как добавить методы расширения прямоугольника в структуры Rectangle и RectangleF. Структуры Rectangle и RectangleF имеют несколько...

02 06 2021 20:10:35

Программа Hello World в C#

В этой статье мы узнаем несколько версий программы Hello World на C#. Пример: 1 Обсуждение кода: Каждый Основной метод должен содержаться внутри класса (в...

01 06 2021 18:46:34

Используйте значок уведомления, чтобы захватить изображение на экране в C#

Одна проблема с базовой программой захвата экрана заключается в том, что она сидит где-то на экране, поэтому изображение, которое она захватывает, включает...

31 05 2021 23:57:33

Отображение диалога выбора шрифта с кнопкой Apply в C#

Иногда приложение отображает диалоговое окно выбора шрифта с кнопкой Apply. Если вы нажмете эту кнопку, приложение покажет, как это будет выглядеть, если в...

30 05 2021 10:55:31

Как отобразить числовые значения для цветов в радуге в C#

Иногда полезно сопоставлять числовые значения цвета. Например, интенсивность цвета может указывать на плотность населения, урожайность сельскохозяйственных...

29 05 2021 10:30:41

Выберите случайные объекты из массива в C#

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

28 05 2021 1:29:33

Как извлечь текст из метафайла в C#

Пример Перечислить записи в метафайле в C# показывает, как перечислить записи в метафайле. В этом примере перечислены записи, ищет те, которые представляют...

27 05 2021 23:58:24

HashMap в Java

В терминах компьютерного программирования карта представляет собой набор ассоциаций между парами объектов. Java HashMap - это базовая реализация интерфейса...

26 05 2021 4:31:42

Как сделать сохранения в Unity 5 при помощи Newtonsoft.Json

В этом уроке мы разберем как сделать сохранения в Unity 5 при помощи библиотеки Newtonsoft.Json и разберем некоторые её свойства....

25 05 2021 7:44:11

Отображать изображения в базе данных Access в WPF и C#

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

24 05 2021 2:22:24

Температура по Цельсию и Фаренгейту в C#

В этой статье мы напишем программу переводящую температуру по Цельсию в температуру по Фаренгейту в C#. Вывод:  ...

23 05 2021 16:59:17

Обработка исключений в C#

Что такое исключение? Исключение .NET - это объект, который описывает условие ошибки во время выполнения. Когда возникает условие ошибки во время выполнени...

22 05 2021 10:36:18

Отображение местного времени и GMT в C#

В этом примере используется Timer для выполнения следующего кода каждые полсекунды. Вначале используется DateTime.Now для получения текущей даты и времени....

21 05 2021 4:32:11

Разница между Java и JavaScript?

Хотя оба имеют похожие имена, оба являются двумя совершенно разными языками программирования. Java - это полнофункциональный, универсальный, язык программи...

20 05 2021 6:37:42

Основы программирования в Embarcadero Delphi (Никита Культин)

Книга представляет собой практическое руководство по программированию в Embarcadero Delphi. В ней представлена технология визуального проектирования и собы...

19 05 2021 8:35:33

Преобразование массива байтов в целое число и обратно в C#

Класс BitConverter предоставляет статические методы, которые позволяют преобразовывать различные типы данных в и из массивов байтов. ( Я полагаю, что было б...

18 05 2021 13:41:10

Что такое компилятор Just-In-Time (JIT) в Java?

Компилятор Just-In-Time (JIT) является компонентом JRE (Java Runtime Environment), который повышает производительность приложений Java во время выполнения....

17 05 2021 18:21:55

Что означает __name __ == '__ main__' в Python?

Как и в других языках программирования, Python также имеет точку входа для выполнения, т. е. Main. Модуль - это файл, содержащий определения и утверждения...

16 05 2021 19:46:33

Нарисуйте линии с торцевыми крышками в C#

Свойства Pen класса StartCap и EndCap определяют, как линия рисует свои концевые колпачки. В этом примере используется следующий код для создания образцов...

15 05 2021 11:11:29

Перезапустите диспетчер очереди печати в C#

Время от времени мой компьютер запутывается и думает, что принтер отключен. Это не так уж плохо, за исключением того, что Windows не предоставляет простой...

14 05 2021 3:55:54

Сохранение изображений в базе данных Access в WPF и C#

Пример Отображение изображений в Доступ к базе данных в WPF и C# показывает, как вы можете отображать изображения, сохраненные в базе данных Access. Конечн...

13 05 2021 22:58:24

Ключевые слова в Python

Ключевые слова - зарезервированные слова в Python. Это зарезервированные слова, и мы не можем использовать ключевое слово в качестве имени переменной, имен...

12 05 2021 17:27:23

Как получить изображение элемента управления, формы или клиентской области формы в C#

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

11 05 2021 17:30:20

Что такое поток Daemon в Java

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

10 05 2021 11:53:48

Вопросы по Python - 2

Когда используется словарь вместо списка? Вы бы использовали словарь, если вам нужно сопоставлять (или ассоциировать) значимые ключи с значениями, тогда ка...

09 05 2021 5:48:22

В чем разница между 'is' и '==' в python

Оператор is сравнивает идентичность двух объектов, в то время как оператор == сравнивает значения двух объектов. Существует разница в значении между равным...

08 05 2021 23:53:30

Добавление вкладок в WPF TabControl во время выполнения в C#

При нажатии кнопки + этот пример использует следующий код для добавления вкладки в WPF TabControl с именем tabMain. Сначала код создает TabItem и добавляет...

07 05 2021 5:27:36

Имитация движения мыши и кликов в C#

Эта программа использует функцию API mouse_event для имитации движения мыши и моделирования щелчка мыши. Обработчик события Paint программы рисует круги во...

06 05 2021 23:18:49

Инициализация элементов управления DataGridView с объектами в C#

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

05 05 2021 22:37:58

Используйте ColorMatrix для добавления водяного знака к изображению на C#

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

04 05 2021 22:44:30

Перемещение элементов управления формы в C#

В этом примере показано, как обрабатывать элементы управления различными типами в форме. Класс Control определяет свойство Controls, которое представляет с...

03 05 2021 20:46:44

Еще:
Программирование -1 :: Программирование -2 :: Программирование -3 :: Программирование -4 :: Программирование -5 ::

И сказал Великий Программист:
«После трёх дней без программирования жизнь теряет смысл»