На головну

CheckBox

  1. Незалежні перемикачі (CheckBox)

Чекбокси відносяться до так званим кнопках відкладеного дії, Т. Е. Їх натиснення не запускає негайно будь-якого процесу. З їх допомогою користувач встановлює певні параметри, результат дії яких позначиться після запуску інших елементів управління. Додамо в додаток 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.Пошук слова в тексті



StatusBar | Label, LinkLabel і PictureBox

Робота з елементами управління | Проект NotepadCSharp. | Створення MDI-додатків | перерахування MdiLayout | Вирізання, копіювання і вставка текстових фрагментів | Контекстне меню | OpenFileDialog | SaveFileDialog | Збереження файлу при закритті форми | FontDialog |

© um.co.ua - учбові матеріали та реферати