Пожалуйста, у меня возникла небольшая проблема при работе с tabControl. У меня есть tabControl, который находится на первой форме. Первоначально у меня были проблемы при попытке доступа к tabControl из другой формы. Но позже я нашел выход, изменив доступность элемента управления в конструкторе с частного на общедоступный.
Однако, когда я пытаюсь показать изнутри вкладку, это не работает. Но из первой формы я могу легко помещать другие формы внутри вкладки, так как у меня там есть контроль. Из другой формы у меня трудности.
Вот код, пытающийся найти данные из базы данных
patient selectUser = new patient();
//Get Selected Patient based on end user click from the DataGridView
public patient GetSelectedUser()
{
if (dataGridView1.CurrentRow.Index != -1)
{
selectUser.patient_id = Convert.ToInt32(dataGridView1.CurrentRow.Cells["patient_id"].Value);
using (DbModel db = new DbModel ())
{
selectUser = db.patients.FirstOrDefault(u => u.patient_id == selectUser.patient_id);
}
}
return selectUser;
}
Вот код, который пытается включить форму в tabcontrol.
StartPage sp = new StartPage();
private void LoadSelectedUser()
{
patient patient = GetSelectedUser();
if (patient == null)
{
MessageBox.Show("cannot load data");
}
else
{
//Close();
//StartPage.tt = "";
//PatientDashboard pd = new PatientDashboard(patient);
//pd.Show();
Close();
PatientDashboard pd = new PatientDashboard(patient);
TabPage tabpage = new TabPage();
tabpage.Text = pd.Text;
sp.tabControl1.TabPages.Add(tabpage);
pd.TopLevel = false;
pd.Parent = tabpage;
pd.Show();
pd.Dock = DockStyle.Fill;
sp.tabControl1.SelectedTab = tabpage;
pd.Show();
}
}
Я заметил, что свойство TopLevel формы делает форму не отображаемой.
Буду искренне признателен за любую помощь, так как я был на этом в течение 2 дней.