// тут мы обрабатываем кнопки add new/ delete / set as done в зависимости от того какие функции мы передали private void update_tasks(int id_task, update_task func, insert_func func2, DateTime date, string str) { status_calc.form3task = id_task; newForm_3.update(); newForm_3.ShowDialog(); status_calc.retstr = newForm_3.get_str; if (status_calc.retstr == null || status_calc.retstr.Length == 0)// проверяем не пустая ли строка { return; } func(date, status_calc.retstr); // вызываем метод по делегату апдейта в словаре func2(date); // вызываем метод по делегату апдейта в форме, метод которой передали status_calc.retstr = ""; }