После закрытия формы в модальном режиме пропадают ранее переданные на форму данные
сообщество! Пишу лабораторную работу в колледже, прошу строго не судить, если вопрос глупый. Нужно, чтобы из формы login.cs передавался логин студента на форму stdnt_pnl.cs, оно передаётся, но при открытии формы dop.cs, её закрытия передаются нужные данные из dop.cs, это правильно, так должно быть, но ранее переданная в label1 переменная с логином студента куда-то пропадает. Так же, не выводится средний балл в textbox1 на форму stdnt_pnl.cs из datagriedview в форме dop.cs. Нужно использовать методы передачи данных такие, как я попытался в коде, иначе задание не примут. Ниже прикладываю коды со всех форм и скриншоты работы с пометками на них где и что не так. Прошу прощения, если вопрос сформулирован некорректно, буду рад изменить, согласно критике.
Код login.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace laba12
{
public partial class login : Form
{
public string techer_login = "Табаргина Г.В.";
public string techer_pass = "qwerty123";
public string student_login = "Дьяконов Е.И.";
public string student_pass = "qwerty";
public login()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (login_box.Text == techer_login && pass_box.Text == techer_pass)
{
tchr_pnl tchr_Pnl = new tchr_pnl(techer_login);
tchr_Pnl.Show();
this.Hide();
}
else if (login_box.Text == student_login && pass_box.Text == student_pass)
{
stdnt_pnl stdnt_Pnl = new stdnt_pnl(student_login);
stdnt_Pnl.Show();
this.Hide();
}
else
{
MessageBox.Show("Введён неверный логин или пароль, проверьте правильность использованных данных," +
" или обратитесь к системному администратору", "Отказано в доступе!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
Далее идёт переход на stdnt_pnl.cs, вот его код.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace laba12
{
public partial class stdnt_pnl : Form
{
private string _student_login;
public string sr
{
get { return textBox1.Text; }
set { textBox1.Text = sr; }
}
public stdnt_pnl(string student_login)
{
InitializeComponent();
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "ddd dd MMM yyyy";
dateTimePicker1.Value = DateTime.Now;
label1.Text = String.Format("Дата: {0}", dateTimePicker1.Value.ToLongDateString());
_student_login = student_login;
lbl_student.Text = ("Студент: " + _student_login);
label2.Text = "Специальность: " + special.spec;
label3.Text = "Группа: " + special.group;
}
private void stdnt_pnl_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
label1.Text = String.Format("Дата: {0}", dateTimePicker1.Text);
}
private void button1_Click(object sender, EventArgs e)
{
dop dop = new dop();
dop.Show();
this.Hide();
}
}
}
Либо на tchr_pnl.cs, но в данном случае мы его не рассматриваем, но если это важно, то для примера код представлен ниже:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace laba12
{
public partial class tchr_pnl : Form
{
private string _techer_login;
public tchr_pnl(string techer_login)
{
InitializeComponent();
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "ddd dd MM yyyy";
dateTimePicker1.Value = DateTime.Now;
label1.Text = String.Format("Дата: {0}", dateTimePicker1.Value.ToShortDateString());
_techer_login = techer_login;
label_teacher.Text = ("Преподаватель: " + techer_login);
}
private void tchr_pnl_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
label1.Text = String.Format("Дата: {0}", dateTimePicker1.Text);
}
}
}
При нажатии кнопки дополнительно, происходит переход на форму dop.cs, её код ниже.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace laba12
{
public partial class dop : Form
{
private string _student_login;
public dop()
{
InitializeComponent();
special.spec = comboBox1.Text;
special.group = textBox1.Text;
}
private void button1_Click(object sender, EventArgs e)
{
special.spec = comboBox1.Text;
special.group = textBox1.Text;
int sum = 0;
double sr = 0;
foreach (DataGridViewRow rows in dataGridView1.Rows)
{
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
if (rows.Cells[i].Value != null && rows.Cells[i].Value != DBNull.Value)
{
sum += Convert.ToInt32(rows.Cells[i].Value);
}
}
}
special.sr = sum / 5;
stdnt_pnl stdnt_Pnl = new stdnt_pnl(_student_login);
stdnt_Pnl.Show();
this.Hide();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) // при изменении значения ячейки
{
}
private void dop_FormClosing(object sender, FormClosingEventArgs e)
{
//stdnt_pnl studentForm = new stdnt_pnl();
//studentForm.studentName = txtStudentName.Text;
//studentForm.Show();
//stdnt_pnl stdnt_Pnl = new stdnt_pnl(_student_login);
//stdnt_Pnl._student_login = txtStudentName.Text;
//stdnt_Pnl.Show();
}
}
}
Так же в программе используется вспомогательный класс special.cs, его код представлен ниже:
internal class special
{
public static string spec;
public static string group;
public static double sr;
}
Ну так вот, при входе от студента выскакивает следующее окно

Логин передался, нажимаем "Дополнительно и смотрим дальше"

Ввели нужные данные и смотрим на проблему:

Логин пропал, а средний балл так и не передался. Буду очень благодарен каждому, кто внесёт какой-то вклад в эту тему.