Основные свойства табличных компонентов

Лабораторная работа № 7

Работа с однородными структурированными типами данных.
Элементы пользовательского интерфейса по работе с массивами.

Цель работы: получить практические навыки работы с компонентами для обработки однородных структурированных данных: научится работать с компонентом dataGridView  для решения задач по обработке одномерных динамических массивов.

Ход работы:

1. Прочитайте свой вариант задания (см. ниже). Запишите в отчёт, что дано и что надо найти, с указанием типов исходных данных и результатов.

2. Продумайте, какие элементы интерфейса необходимо разместить на форме, чтобы обеспечить удобную и наглядную работу пользователя. Ввод массива нужно осуществлять с клавиатуры или случайным образом в компонент dataGridView. Способ ввода будем менять с помощью зависимых кнопок выбора.

3. Выполните настройку свойств компонента dataGridView. Так как массив одномерный, установим количество строк таблицы 1, количество колонок по умолчанию 10. Столбец заголовка нам не нужен, установим свойству RowHeadersVisible значение false. Занесите в отчёт в специальную таблицу, у каких компонентов вы изменяли свойства, и какое значение получило теперь каждое свойство. Примерный вид формы при запуске:

Указания:


Основные свойства табличных компонентов

RowCount, ColumnCount – задают число строк и столбцов таблицы (нумерация строк и столбцов начинается с нуля). Путем задания новых значений этих свойств можно динамически менять размерность таблицы.

RowHeadersVisible, ColumnHeadersVisible – задают будут ли отображаться заголовки строк и столбцов.

ColumnHeadersHeights, RowHeadersWidths – задают высоту и ширину ячеек таблицы. Размеры таблицы и её ячеек задаются в пикселях и могут изменяться во время работы программы по содержимому ячеек.

ColumnHeadersHeightSizeMode – определяет поведение при изменении высоты заголовков столбцов (установите это свойство в значение EnableResizing, в этом случае высота заголовков столбцов не будет изменяться по содержимому, и мы сможем в конструкторе задать высоту строки заголовка).

AutoSizeColumnMode – определяет режим автоматической установки размера для видимых столбцов (установите значение Fill).

AllowUserToAddRows – определяет, есть ли возможность добавления строк (установите значение false).

AllowUserToDeleteRows – определяет, есть ли возможность удаления строк (установите значение false).

dataGridView1.Rows[i].Cells[j].Value – свойство используется для доступа к отдельной ячейке с указанием номера столбца и номера строки. Используя цикл для перебора номеров строк и столбцов таблицы, можно поочередно обращаться к каждой ячейке.

Чтобы пользователь мог редактировать содержимое ячеек таблицы, необходимо свойству ReadOnly присвоить значение false.

 

Пример кода обработки одномерного массива:

private void button1_Click(object sender, EventArgs e)

   {

       int x = 0, y = 0;

       int[] a = new int[n]; // выделение памяти под динамический массив

       for (int i = 0; i < n; i++)

       {  

      dataGridView1.Columns[i].Name = i.ToString(); 

// строка заголовков столбцов

           a[i] =Convert.ToInt32(dataGridView1.Rows[0].Cells[i].Value);   

// значения из таблицы помещаем в массив

       }

       for (int i = 0; i < n; i++)    

// цикл для подсчёта количества чётных и нечётных элементов

       {

           if (a[i] % 2 == 0)

               x++;

           else

               y++;

       }

       if (x == 0)        // вывод результатов

           label2.Text = "Нет четных элементов";

       else

           label2.Text = "Четных: " + x;

       if (y == 0)

           label2.Text += " Нет нечетных элементов";

       else

           label2.Text += " Нечетных: " + y;

   }

 

4. Добавьте на форму поле ввода с кнопкой-переключателем numericUpDown. При нажатии на кнопку-переключатель из поля ввода будет считываться размер массива, выделятся память под динамический массив, устанавливаться соответствующее количество ячеек таблицы и её ширина. Добавьте процедуру нажатия на кнопку numericUpDown и внесите необходимые команды в тело метода.

5. При переключении кнопок-переключателей radioButton в контейнере groupBox будет меняться способ ввода массива. Создайте метод обработки события щелчка по контейнеру. При выборе пользователем кнопки «Вручную» таблица на форме должна заполняться нулями. При выборе пользователем кнопки «Случайно» таблица на форме должна заполняться случайными числами в интервале
[-100; 100]. Внесите необходимые команды в тело процедуры.

6. Все расчёты в программе будут происходить при нажатии на кнопку «Вычислить». Создайте соответствующий метод обработки события. При нажатии на кнопку «Вычислить» значения из таблицы должны считываться в массив, а затем с этим массивом можно производить любые действия и вычисления по заданию. Разработайте алгоритм метода нажатия на кнопку «Вычислить» и скопируйте его в отчёт. Внесите необходимые команды в тело процедуры.

7. Запустите проект на компиляцию. При необходимости исправьте синтаксические ошибки, выявленные на этапе компиляции.

8. Запустите проект на выполнение. Протестируйте программу. Отследите, какие ошибки выполнения возникают при недопустимости исходных данных, например, если пользователь оставил одну или несколько ячеек таблицы пустыми, ввел в ячейку недопустимые символы. Подумайте, как можно предотвратить такие ошибки.Добавьте методы проверки правильности ввода данных в таблицу dataGridView.

9. Протестируйте программу при различных значениях размерности массива, в режиме ручного и случайного ввода. Скопируйте в отчёт скриншоты различных вариантов выполнения программы.

10. Скопируйте в отчёт текст программного модуля с комментариями.

Подведение итогов лабораторной работы:

Результатом выполнения лабораторной работы должен быть проект, сохранённый в отдельной папке, и отчёт. Отчёт должен содержать:

ü название лабораторной работы, цель работы;

ü текст вашего задания с указанием номера варианта;

ü скриншот формы с надписанными компонентами;

ü таблица «Значения свойств, установленные на этапе конструирования интерфейса»;

ü алгоритм основного метода (нажатия на кнопку «Вычислить»);

ü текст программного модуля с комментариями;

ü скриншоты проекта на этапе выполнения;

ü колонтитулы с вашей фамилией и номером группы.

Продемонстрируйте результаты работы преподавателю и получите оценку.

Контрольные вопросы:

1. Какие свойства таблицы dataGridView можно установить на этапе конструирования? Поясните назначение этих свойств.

2. Какое свойство таблицы dataGridView позволяет обратиться к определённой ячейке в программе?

3. Сколько методов получилось в проекте, какие события они обрабатывают?

 

 





Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: