Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Порядок выполнения лабораторной работы. В данном разделе будет представлена последовательность действий для создания небольшого приложения для хранения списка студентов в коллекции List.






В данном разделе будет представлена последовательность действий для создания небольшого приложения для хранения списка студентов в коллекции List.

1. Откройте MS Visual Studio 2008 или более позднюю версию.

2. Создайте новое приложение Windows Forms.

Рисунок 1.1 – Окно создания проекта

Появится конструктор формы, изображенный на рисунке 1.2

Рисунок 1.2 – Конструктор формы

3. Выделите форму и в свойствах попробуйте изменить ее название и цвет (название – свойство Text, цвет - BackColor).

4. Установите на форму панель SplitContainer c раздела «Контейнеры». Это обеспечить разделение формы на 2 части. Одна из частей будет использоваться для ввода данных, а другая для их отображения. Результат будет выглядеть примерно как на рисунке 1.3.

Рисунок 1.3 – Внешний вид формы после размещения компонента SplitContainer

5. Разместите в областях Panel1 и Panel2 два компонента Panel c раздела «Контейнеры», и установите у панелей свойство Dock в значение Fill. Левая часть формы будет использоваться для отображения данных, а правая – для ввода данных. Для отображения списка студентов будет использован компонент DataGridView с раздела «Данные».

6. Разместите в левой области формы компонент DataGridView и установите у него свойство Dock в значение Fill. С правой стороны разместите несколько элементов ввода, например TextBox и кнопку Button. Дайте название кнопке «Добавить». Элементы ввода можно озаглавливать компонентом Label. Окончательный внешний вид интерфейса представлен на рисунке 1.4.

Рисунок 1.4 – Окончательный внешний вид интерфейса программы

7. Поскольку наша программа будет работать со списком студентов, то необходимо разработать класс студента. Создайте класс Student (выберите в контекстном меню проекта Добавить => Создать элемент, и выберете параметры как показано на рисунке 1.5).

Рисунок 1.5 – Окно создания нового класса

Примерный текст класса студента приведен ниже:

namespace lab1

{

class Student

{

private string name;

private string surname;

private string recordBookNumber;

 

public Student(string name, string surname, string recordBookNumber)

{

this.name = name;

this.surname = surname;

this.recordBookNumber = recordBookNumber;

}

 

public string getName()

{

return this.name;

}

 

public string getSurname()

{

return this.surname;

}

 

public string getRecordBookNumber()

{

return this.recordBookNumber;

}

 

public void setName(string name)

{

this.name = name;

}

 

public void setSurname(string surname)

{

this.surname = surname;

}

 

public void setRecordBookNumber(string recordBookNumber)

{

this.recordBookNumber = recordBookNumber;

}

}

}

8. Установите на форму компонент ContextMenuStip (контекстное меню), добавте у него одно поле «Удалить» и в свойстве ContextMenuStip компонента DataGridView выберите contextMenuStip1. Таким образом у компонента DataGridView появится собственное контекстное меню.

9. Настройте свойства компонента DataGridView следующим образом: ReadOnly – True, MultiSelect – False, RowHeadersVisible – False, SelectionMode – FullRowSelect.

10. Компонент DataGridView состоит из колонок DataGridViewColumn и строк DataGridViewRow. Для того, чтобы добавлять в DataGridView строки необходимо, чтобы в ней уже были колонки. Поэтому при инициализации формы необходимо добавить в DataGridView необходимое количество колонок. Поскольку студент содержит три поля, то и колонок в таблице тоже должно быть три.

Откройте форму в режиме кода (нажмите на Form1.cs в обозревателе решений и вызовите контекстное меню, выберете пункт «Открыть с помощью…», в появившемся диалоговом окне выберете «Редактор CSharp»).

Добавьте перед конструктором три поля – ссылки на колонки таблицы:

 

//Колонки таблицы

private DataGridViewColumn dataGridViewColumn1 = null;

private DataGridViewColumn dataGridViewColumn2 = null;

private DataGridViewColumn dataGridViewColumn3 = null;

 

Добавьте четыре метода приведенные ниже:

 

//Инициализация таблицы

private void initDataGridView()

{

dataGridView1.DataSource = null;

dataGridView1.Columns.Add(getDataGridViewColumn1());

dataGridView1.Columns.Add(getDataGridViewColumn2());

dataGridView1.Columns.Add(getDataGridViewColumn3());

dataGridView1.AutoResizeColumns();

}

 

//Динамическое создание первой колонки в таблице

private DataGridViewColumn getDataGridViewColumn1()

{

if (dataGridViewColumn1 == null)

{

dataGridViewColumn1 = new DataGridViewTextBoxColumn();

dataGridViewColumn1.Name = " ";

dataGridViewColumn1.HeaderText = " Имя";

dataGridViewColumn1.ValueType = typeof(string);

dataGridViewColumn1.Width = dataGridView1.Width / 3;

}

return dataGridViewColumn1;

}

 

//Динамическое создание второй колонки в таблице

private DataGridViewColumn getDataGridViewColumn2()

{

if (dataGridViewColumn2 == null)

{

dataGridViewColumn2 = new DataGridViewTextBoxColumn();

dataGridViewColumn2.Name = " ";

dataGridViewColumn2.HeaderText = " Фамилия";

dataGridViewColumn2.ValueType = typeof(string);

dataGridViewColumn2.Width = dataGridView1.Width / 3;

}

return dataGridViewColumn2;

}

 

//Динамическое создание третей колонки в таблице

private DataGridViewColumn getDataGridViewColumn3()

{

if (dataGridViewColumn3 == null)

{

dataGridViewColumn3 = new DataGridViewTextBoxColumn();

dataGridViewColumn3.Name = " ";

dataGridViewColumn3.HeaderText = " Зачетка";

dataGridViewColumn3.ValueType = typeof(string);

dataGridViewColumn3.Width = dataGridView1.Width / 3;

}

return dataGridViewColumn3;

}

 

Первый метод добавляет в dataGridView1 три колонки, а последние три создают эти колонки.

Добавте в конструктор вызов метода initDataGridView:

 

public Form1()

{

InitializeComponent();

initDataGridView();

}

 

11. Добавьте перед конструктором поле – ссылку на коллекцию, в которой будут храниться записи о студентах:

 

//Колекция List

private IList< Student> studentList = new List< Student> ();

 

12. Добавьте методы для добавления и удаления студентов в коллекцию и из коллекции и для отображения коллекции в DataGridView:

 

//Добавление студента в колекцию

private void addStudent(string name, string surname, string

recordBookNumber)

{

Student s = new Student(name, surname, recordBookNumber);

studentList.Add(s);

textBox1.Text = " ";

textBox2.Text = " ";

textBox2.Text = " ";

showListInGrid();

}

 

//Удаление студента с колекции

private void deleteStudent(int elementIndex)

{

studentList.RemoveAt(elementIndex);

showListInGrid();

}

 

//Отображение колекции в таблице

private void showListInGrid()

{

dataGridView1.Rows.Clear();

foreach (Student s in studentList)

{

DataGridViewRow row = new DataGridViewRow();

DataGridViewTextBoxCell cell1 = new

DataGridViewTextBoxCell();

DataGridViewTextBoxCell cell2 = new

DataGridViewTextBoxCell();

DataGridViewTextBoxCell cell3 = new

DataGridViewTextBoxCell();

cell1.ValueType = typeof(string);

cell1.Value = s.getName();

cell2.ValueType = typeof(string);

cell2.Value = s.getSurname();

cell3.ValueType = typeof(string);

cell3.Value = s.getRecordBookNumber();

row.Cells.Add(cell1);

row.Cells.Add(cell2);

row.Cells.Add(cell3);

dataGridView1.Rows.Add(row);

}

}

 

13. Добавте обработчики собыйтий на кнопку добавления студента и на кнопку меню удаления студента:

 

//Обработчик нажатия на кнопку добавления

private void button1_Click(object sender, EventArgs e)

{

addStudent(textBox1.Text, textBox2.Text, textBox3.Text);

}

 

//Обработчик нажатия на удалить

private void удалитьToolStripMenuItem_Click(object sender,

EventArgs e)

{

int selectedRow = dataGridView1.SelectedCells[0].RowIndex;

DialogResult dr = MessageBox.Show(" Удалить студента? ", " ",

MessageBoxButtons.YesNo);

if (dr == DialogResult.Yes)

{

try

{

deleteStudent(selectedRow);

}

catch (Exception)

{

}

}

}

 

Окончательный вариант приложения представлен на рисунке 1.6.

Рисунок 1.6 – Окончательный вариант приложения






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.