Создание Windows-приложений на основе Visual C#

         

CheckBox


Чекбоксы относятся к так называемым кнопкам отложенного действия, т. е. их нажатие не запускает немедленно какого-либо процесса. С их помощью пользователь устанавливает определенные параметры, результат действия которых скажется после запуска других элементов управления. Добавим в приложение Notepad C# форму для поиска заданного текста, в которой будут использованы элементы управления CheckBox. В окне Solution Explorer щелкаем правой кнопкой мыши на названии проекта — NotepadCSharp — и в появившемся меню выбираем пункт Add Windows Form. Называем новую форму FindForm.cs и устанавливаем следующие свойства:

FindForm, форма, свойствоЗначение
NameFindForm
FormBorderStyleFixedToolWindow
Size328; 112
TextFind

Располагаем на форме TextBox, две кнопки и два элемента ChekBox так, как показано на рис. рис. 2.23:


Рис. 2.23.  Форма FindForm в режиме дизайна

Устанавливаем следующие свойства элементам управления:

TextBox, свойствоЗначение
NametxtFind
Size192; 20
Text
checkBox1, свойствоЗначение
NamecbMatchCase
TextMatch &Case
checkBox2, свойствоЗначение
NamecbMatchWhole
TextMatch &whole word
button1, свойствоЗначение
NamebtnOK
DialogResultOK
Text&OK
button2, свойствоЗначение
NamebtnCancel
DialogResultCancel
Text&Cancel

Выбор первого чекбокса — cbMatchCase — будет устанавливать поиск слова с учетом регистра, второго – cbMatchWhole — поиск по целому слову. Обратите внимание на свойство кнопок DialogResult — выбирая соответствующие свойства, мы устанавливаем обработчики для кнопок без обращения к коду. Значение ОК закрывает форму, выполняя установленное действие, — в данном случае — поиск; значение Cancel просто закрывает форму. В главном меню формы frmmain добавляем разделительную линию и пункт Find и устанавливаем значения свойств: Name — mnuFind, Shortcut — CtrlF, Text — &Find. Переходим в обработчик этого пункта:

private void mnuFind_Click(object sender, System.EventArgs e) { //Создаем новый экземпляр формы FindForm FindForm frm = new FindForm(); //Если выбран результат DialogResult.Cancel, закрываем форму (до этого //мы использовали DialogResult.OK) if(frm.ShowDialog(this) == DialogResult.Cancel) return; ////Переключаем фокус на данную форму. blank form = (blank)this.ActiveMdiChild; ////Указываем, что родительской формой является форма frmmain form.MdiParent = this; //Вводим переменную для поиска в определенной части текста — //поиск слова будет осуществляться от текущей позиции курсора int start = form.richTextBox1.SelectionStart; //Вызываем предопределенный метод Find элемента richTextBox1. form.richTextBox1.Find(frm.FindText, start, frm.FindCondition); }


Основой поиска будет метод Find элемента управления RichTextBox. Нам остается лишь указать параметры поиска, которые могут принимать различные значения (рис. 2.24):


Рис. 2.24.  Параметры метода Find. Щелкая на маленькую кнопку всплывающей подсказки Intel Sense, выбираем разные подсказки для групп передаваемых параметров

В коде формы FindForm осталось реализовать логику работы, зависящую от положения элементов CheckBox:

Листинг 2.11.

(html, txt)

И наконец, создаем свойство FindText, возвращающее в качестве переменной поиска введенный текст в текстовое поле формы FindForm:

public string FindText { get{return txtFind.Text;} set{txtFind.Text = value;} }

Запускаем приложение. Выбирая различные варианты, можно однократно искать заданное слово (рис. 2.25):


Рис. 2.25.  Поиск слова в тексте


Содержание раздела