// Грид с назначениями лекарств
        public void PrescriptionGrid()
        {
            dataGridView4.Rows.Clear();

            // Количество записей на гриде
            int records = 10;

            using (Context db = new Context())
            {
                // Находим все записи
                var p = db.PrescriptionsOfDrugs.Where(x => x.PlanID == plan.ID && x.DateOfDelete == null).ToList();
                // Поиск максимального числа страниц
                maxpage = p.Count() / records;

                // Если записи ровно не делятся на 10 - добавляется еще 1 страница
                if (p.Count() % records != 0)
                {
                    maxpage++;
                }

                // Если записей вообще нет - будет 1 страница
                if (maxpage == 0)
                {
                    maxpage++;
                }

                // Если текущая выбранная страница = максимальной - дезоктивация кнопки ВПЕРЕД
                if (currentPage == maxpage)
                {
                    button29.Enabled = false;
                }

                // Если текущая выбранная страница = 1 - дезоктивация кнопки НАЗАД
                if (currentPage == 1)
                {
                    button30.Enabled = false;
                }

                // Если текущая выбранная страница > максимальной - активация кнопки ВПЕРЕД
                if (currentPage < maxpage)
                {
                    button29.Enabled = true;
                }

                label41.Text = "Страница:" + Convert.ToString(currentPage) + "/" + maxpage;
            }

            List <PrescriptionOfDrug> pres = OperationsOfPrescriptionsOfDrugs.FindAllPrescription_Plan(plan, currentPage, records);

            foreach (var pr in pres)
            {
                dataGridView4.Rows.Add(pr.ID, pr.PlanID, OperationsOfDrugs.FindByID(pr.DrugID).Name, pr.Quantity, pr.StartTimeOfTaken, pr.FinishTimeOfTaken, pr.DateOfCreate, pr.DateOfEdit);
            }
        }
        // Двойное нажатие на грид с назначениями - инфо карточка назначения
        private void dataGridView4_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex != 8) // Просмотр назначения
            {
                if (e.RowIndex > -1)
                {
                    if (dataGridView4.RowCount - 1 >= e.RowIndex)
                    {
                        int l = e.RowIndex;                                                                                          // Находим индекс строки, где был клик
                        int k = Convert.ToInt32(dataGridView4.Rows[l].Cells[0].Value);                                               // Выдергивание id назначения из строки
                        InfoForm.Info_Prescription f = new InfoForm.Info_Prescription(OperationsOfPrescriptionsOfDrugs.FindByID(k)); // Вызов конструктора формы с данными строки(назначения) на которую мы кликнули
                        f.ShowDialog();
                    }
                }
            }
            else // Удаление назначения
            {
                if (e.RowIndex > -1)
                {
                    if (dataGridView4.RowCount - 1 >= e.RowIndex)
                    {
                        // Находим индекс строки, где был клик
                        int          l       = e.RowIndex;
                        const string message = "Хотите удалить назначение лекарства?";
                        const string caption = "Удаление";
                        var          result  = MessageBox.Show(message, caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

                        if (result == DialogResult.OK)
                        {
                            // Выдергивание id назначения из строки
                            int k = Convert.ToInt32(dataGridView4.Rows[l].Cells[0].Value);
                            // Удаление этой строки из грида
                            dataGridView4.Rows.Remove(dataGridView4.Rows[l]);
                            // Удаление назначения с найденным id из БД
                            OperationsOfPrescriptionsOfDrugs.Del(k);
                            OperationsOfDispensingDrugs.HideDispensing_Prescription(k);
                            PrescriptionGrid();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Эту строку нельзя удалить, в ней нет данных.");
                    }
                }
            }
        }
        // Кнопка "Сохранить"
        private void button2_Click(object sender, EventArgs e)
        {
            if (numericUpDown1.Value != 0) // Единственная проверка количества лекарства
            {
                pres.DrugID            = Convert.ToInt32(textBox3.Text);
                pres.PlanID            = Convert.ToInt32(textBox1.Text);
                pres.Quantity          = (int)numericUpDown1.Value;
                pres.StartTimeOfTaken  = dateTimePicker1.Value;
                pres.FinishTimeOfTaken = dateTimePicker2.Value;

                OperationsOfPrescriptionsOfDrugs.Edit(pres);
                MessageBox.Show("Назначение лекарства изменено");

                // При нажатии кнопки вызывается грид с уже измененными данными(авто обновление) на главной форме
                this.Close();
            }
            else
            {
                toolTip1.Show("Введите количество лекарства", numericUpDown1, new Point(0, 20), 1000);
            }
        }