Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Чекбоксы относятся к так называемым кнопкам отложенного действия, т. е. их нажатие не запускает немедленно какого-либо процесса. С их помощью пользователь устанавливает определенные параметры, результат действия которых скажется после запуска других элементов управления. Добавим в приложение Notepad C# форму для поиска заданного текста, в которой будут использованы элементы управления CheckBox. В окне Solution Explorer щелкаем правой кнопкой мыши на названии проекта — NotepadCSharp — и в появившемся меню выбираем пункт Add Windows Form. Называем новую форму FindForm.cs и устанавливаем следующие свойства:
FindForm, форма, свойство | Значение |
Name | FindForm |
FormBorderStyle | FixedToolWindow |
Size | 328; 112 |
Text | Find |
Располагаем на форме TextBox, две кнопки и два элемента CheckBox так, как показано на рис. рис. 2.23:
Рис. 2.23. Форма FindForm в режиме дизайна
Устанавливаем следующие свойства элементам управления:
TextBox, свойство | Значение | ||
Name | txtFind | ||
Size | 192; 20 | ||
Text | |||
checkBox1, свойство | Значение | ||
Name | cbMatchCase | ||
Text | Match &Case | ||
checkBox2, свойство | Значение | ||
Name | cbMatchWhole | ||
Text | Match &whole word | ||
button1, свойство | Значение | ||
Name | btnOK | ||
DialogResult | OK | ||
Text | &OK | ||
button2, свойство | Значение |
Name | btnCancel |
DialogResult | Cancel |
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:
// Создаем перечисление, возвращающее параметр FindCondition
public RichTextBoxFinds FindCondition
{
get
{
//Выбраны два чекбокса
if (cbMatchCase.Checked && cbMatchWhole.Checked)
{
// Возвращаем свойство MatchCase и WholeWord
return RichTextBoxFinds.MatchCase| RichTextBoxFinds.WholeWord;
}
//Выбран один чекбокс
if (cbMatchCase.Checked)
{
// Возвращаем свойство MatchCase
return RichTextBoxFinds.MatchCase;
}
//Выбран другой чекбокс
if (cbMatchWhole.Checked)
{
// Возвращаем свойство WholeWord
return RichTextBoxFinds.WholeWord;
}
//Не выбран ни один чекбокс
return RichTextBoxFinds.None;
}
}
Листинг 2.11.
И наконец, создаем свойство FindText, возвращающее в качестве переменной поиска введенный текст в текстовое поле формыFindForm:
public string FindText
{
get{return txtFind.Text;}
set{txtFind.Text = value;}
}
Запускаем приложение. Выбирая различные варианты, можно однократно искать заданное слово (рис. 2.25):
Рис. 2.25. Поиск слова в тексте
Дата публикования: 2014-12-11; Прочитано: 323 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!