Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Порядок выполнения лабораторной работы. В данном разделе будет представлена последовательность действий для создания небольшого приложения для хранения списка студентов в коллекции 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 – Окончательный вариант приложения
|