Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР9.doc
Скачиваний:
24
Добавлен:
21.09.2019
Размер:
4.54 Mб
Скачать

Список ListBox

Список служит для представления перечней элементов, в которых пользователь может выбрать одно (свойство SelectionMode равно One) или несколько значений (свойство SelectionMode равно MultiSimple или MultiExtended). Если значение свойства SelectionMode равно MultiSimple, щелчок мышью на элементе выделяет его или снимает выделение. Значение MultiExtended позволяет использовать при выделении диапазона строк клавишу Shift, а при добавлении элемента — клавишу Ctrl, аналогично проводнику Windows. Запретить выделение можно, установив значение свойства SelectionMode, равное None.

Чаще всего используются списки строк, но можно выводить и произвольные изображения. Список может состоять из нескольких столбцов (свойство MultiColumn) и быть отсортированным в алфавитном порядке (Sorted = True).

Элементы списка нумеруются с нуля. Они хранятся в свойстве Items, представляющем собой коллекцию. В Items можно добавлять элементы с помощью методов Add, AddRange и Insert. Для удаления элементов служат методы Remove и RemoveAt, удаляющие заданный элемент и элемент по заданному индексу, соответственно.

Выделенные элементы можно получить с помощью свойств SelectedItems и SelectedIndices, предоставляющих доступ к коллекциям выделенных элементов и их индексов.

В листинге 9.5 приведен пример приложения, которое отображает в списке типа ListBox строки, считанные из входного файла, а затем по щелчку на кнопке Запись выводит выделенные пользователем строки в выходной файл. Вид окна приложения приведен на рисунке 9.10.

Рис. 9.10 - Окно приложения для работы со списком строк

Листинг 9.5. Работа со списком строк

using System;

using System.IO;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.Collections.Specialized;

namespace WindowsApplication1

{

public class Form1 : Form

{

private ListBox listBox1;

private Button button1;

private Container components = null;

public Form1() { ... }

protected override void Dispose( bool disposing ) { ... }

Windows Form Designer generated code { ... }

static void Main() { ... }

private void Form1_Load(object sender, EventArgs e)

{

try

{

StreamReader f = new StreamReader( "input.txt" );

string buf;

while ( ( buf = f.ReadLine() ) != null ) // чтение из файла

listBox1.Items.Add(buf); // занесение в список

}

catch ( FileNotFoundException exc )

{

MessageBox.Show( exc.Message );

return;

}

}

private void button1_Click(object sender, EventArgs e)

{

StreamWriter f = new StreamWriter( "output.txt" );

foreach ( string item in listBox1.SelectedItems )

f.WriteLine(item); // запись в файл

f.Close();

}

}

}

На панели инструментов расположено множество компонентов, не рассмотренных в этой книге. Для их изучения следует обратиться к справочной системе .NET. Она организована понятно и единообразно, и даже те, кто не изучал английский язык, смогут при некотором навыке извлечь оттуда необходимую информацию.

ёВ следующей части этой главы будут коротко описаны основные элементы классов Form и Application, входящих в состав любого приложения.