На этом шаге мы рассмотрим пример использования этого компонента.
Начиная с этого шага, мы приведем несколько примеров использования указанного компонента.
Допустим, нам нужно осуществлять выбор из нескольких строк, помещенных в компонент ComboBox. Модифицируем программу из 158 шага, заменив в ней компонент ListBox на ComboBox.
Текст приложения:
. . . . . #include <stdio.h> namespace My163_1 { . . . . . private: /// <summary> // функция: загружает из файла текстовые строки в ListBox void LoadFromFile(char *File, ComboBox ^cb) { char s[300]; FILE *fp; cb->Items->Clear(); if (!(fp=fopen(File, "r"))) { MessageBox::Show("Ошибка открытия файла", "Работа с ListBox", MessageBoxButtons::OK, MessageBoxIcon::Asterisk); return; } fgets(s, 300, fp); while(!feof(fp)) { String ^dd = gcnew String(s); // этот способ конвертирования не удаляет последний // управляющий символ, который надо удалить: int j = dd->Length-1; dd = dd->Substring(0, j); cb->Items->Add(dd); fgets(s,300,fp); } } /// Требуется переменная конструктора. /// </summary> . . . . . // Обработчики событий // Выход из приложения private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { Close(); } // Загрузка из файла private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { this->LoadFromFile("d:\\file.txt", this->comboBox1); } // Закрытие списка private: System::Void comboBox1_DropDownClosed(System::Object^ sender, System::EventArgs^ e) { if (comboBox1->SelectedIndex != -1) textBox1->Text = this->comboBox1->Items[this->comboBox1->SelectedIndex]->ToString(); }
Результат работы приложения:
Рис.1. Результат работы приложения
Обработка выбора осуществляется в обраотчике события DropDownClosed() компонента comboBox1. Возможно два случая, когда список сворачивается:
На следующем шаге мы рассмотрим еще один пример использования этого компонента.