Шаг 163.
Microsoft Visual C++ 2010. Язык С/С++.
Компоненты Windows Forms. Примеры использования ComboBox. Пример 1

    На этом шаге мы рассмотрим пример использования этого компонента.

    Начиная с этого шага, мы приведем несколько примеров использования указанного компонента.

    Допустим, нам нужно осуществять выбор из нескольких строк, помещенных в компонент 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. Возможно два случая, когда список сворачивается:

    На следующем шаге мы рассмотрим еще один пример использования этого компонента.




Предыдущий шаг Содержание Следующий шаг