|
Программирование >> Элементы языков с и с++
Пояснение: Здесь задаются состояния для флажков 1, 2 и 3-й строк. Последний оператор определяет состояние 1-й строки. Так как тип результата, выдаваемого методом GetitemCheckstate о,- это тип checkstate, то чтобы увидеть состояние, надо этот тип привести к типу int принудительно. Поэтому после знака присвоения стоит (int). Чтобы узнать, помечен ли элемент списка, можно выполнить оператор: их1 b=this->checkedListBoxl->GetItemChecked(i); Результат метода GetitemCheckedO - логическая переменная, i- индекс злемента. 0 Москва-- ] Новосибирск Помечен -Не помечен В неопределенном состоянии Рис. 11.74. Программная установка флажков Можно и другим способом установить флажок. Для этого следует выполнить оператор: -jiis->checkedListBoxl->SetItemChecked(3, 1) ; Здесь: 13 - индекс элемента (4-я строка); !] 1- булево значение true (второй параметр этого метода имеет булев тип). Обратим внимание на событие itemCheck, которое возникает, когда состоя-вие флажка меняется. Оно пригодится при обработке выборки из CheckedListBox. В CheckedListBox можно также загружать текстовые строки из файла, как и пя ListBox. Пример такой загрузки показан на рис. 11.75. Фрагменты текста программы- в листинге 11.11. Необходимо отметить, что при использовании программ загрузки из текстового файла надо заменить оператор uncludeo в файле <имя проекта>. срр iinclude stdafx.h ttinclude <io.h> , #include <stdio.h> #include <fcntl.h> #include <share.h> #include <stdlib.h> #include <string.h> strnlenO ttinclude Forml.h Это делается для того, чтобы функции и структуры, употребляемые в функции загрузки текста из файла, отыскивались компилятором в соответствующих библиотеках. До зафузки. И Forml □ Москва □ С-Петерб!(рг □ Н. Ноегорш □ Новосибирск Загрузить текстовый файл --гт-о- □Рабочий :□ Ученый ,□ Ииженер Писатель Загр ;эить текстовый файл - После загрузки Рис. 11.75. Пример зафузки текстового файла в CheckedListBox Фрагмент 1: функция загрузки текстового файла private: / <summary> / Required designer variable. место в h-файле, куда надо вставлять функцию функция: загружает из файла текстовые строки в ListBox void LoadFromFile(char *File, CheckedListBox lb) ( char s[300]; LoadFromFile ( c: \\a. txt , this->checkedListBoxl) ; Пример: домашний телефонный справочник Приведем пример приложения для домашнего телефонного справочника, построенного с использованием компонента CheckedListBox. Справочник дол- ПЬЕ *fp; int i; i=0; lb->Items->Clear () ; if (! (fp=fopen(File, r ))) ( MessageBox::Show( Ошибка открытия файла , Приложение 54 , MessageBoxButtons::OK,MessageBoxIcon::Asterisk); return; while (!feof(fp)) ( fgets(s,300, fp) ; String dd = gcnew String (s); /*этот способ конвертирования не удаляет последаий управляющий символ, который надо удалить:*/ int j=dd->Length-l; dd=dd->Substring (О, j) ; lb->Items->Add(dd) ; i++; I Фрагмент 2: обработчик кнопки [private: System: :Void buttonl Click(System: :ОЬэес sender, Sys-Ittin:: EventArgs e)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |