Home > CLR, Кодинг, Компьютер, Проги, С++ > CLR – Проект с ListBox и messageBox

CLR – Проект с ListBox и messageBox

Продолжим изучение Common language runtime. В нашем втором проекте мы будем использовать listBox и messageBox.

Как работать с ListBox.

listBox1->Items – коллекция строк.

listBox1->Items->Add(n) – добавление нового элемента.

istBox1->Items->Clear() – очистить коллекцию.

listBox1->Items->Insert(i, n) – вставить элемент n номером i.

listBox1->Items->Remove(n)-удалить из коллекции элементы, равные n

listBox1->Items->RemoveAt(i) – удаление элемента под номером i.

listBox1->Items[i] – доступ к элементу i.

listBox1->SelectedIndex – номер выделенного элемента (если ничего не выбрано, то -1)

Поскольку каждый элемент коллекции не строкового типа, то перед выводом на экран, его необходимо конвертировать в строку

textBox1->text = listBox1->Items[listBox1->SelectedIndex]->ToString

Как будет происходить работа проекта? При нажатии на кнопку “Добавить” в listBox будет добавляться новая запись. Клик на кнопке “Изменить” будет изменять выделенную запись, “Удалить” – будет удалять выделенную запись.Приступаем.

Пусть button1 – “Добавить”, button2 – “Изменить”, button3 – “Удалить”.

При нажатии на “Добавить”  будет происходить проверка наличия в textBox1 каких-нибудь данных. Если данных нет, т.е. текстбокс пустой, то будет выводиться ошибка.

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

А клик на кнопке для удаления будет, логично предположить, удалять выбранную запись и, на всякий случай, очищать тектовое поле, если лемент не выбран, то снова ошибка.

Вот я говорю, что будет ошибка выводиться. А как? Сейчас объясню.

MessageBox::Show(“Ошибка! Не выбран элемент для изменения!”, “Список”, MessageBoxButtons::OK,MessageBoxIcon::Error);

Вот так. А так выглядит общий вид MessageBox::Show(“Текст ошибки”, “Заголовок”, кнопки, иконка).


А вот коды обработчиков.

Добавление в список
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
if (textBox1->Text == "") MessageBox::Show("Ошибка! Нечего заносить в список!",
"Список", MessageBoxButtons::OK,MessageBoxIcon::Error);
else
{
listBox1->Items->Add(textBox1->Text);
}
textBox1->Text = "";
}


Изменение
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
if ((number != -1) && (textBox1->Text != ""))
listBox1->Items[number] = textBox1->Text;
else
{
MessageBox::Show("Ошибка! Не выбран элемент для изменения!",
"Список", MessageBoxButtons::OK,MessageBoxIcon::Error);
}
}
* This source code was highlighted with Source Code Highlighter.


Выбор элемента  коллекции из listBox путем клика мышкой на него. Номер элемента заносится в переменную number. Эта переменная должна быть описана в классе.

private: System::Void listBox1_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
if (listBox1->SelectedIndex >= 0)
{
textBox1->Text = listBox1->Items[listBox1->SelectedIndex]->ToString();
number = listBox1->SelectedIndex;
}
}
* This source code was highlighted with Source Code Highlighter.


Удаление выбранного элемента.

private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e)
{
if (listBox1->SelectedIndex >= 0)
{
listBox1->Items->RemoveAt(number);
}
else
{
MessageBox::Show(“Ошибка! Не выбран элемент для удаления!!”,
“Список”, MessageBoxButtons::OK,MessageBoxIcon::Error);
}
textBox1->Text = “”;
}
* This source code was highlighted with Source Code Highlighter.

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: