【发布时间】:2018-07-04 01:51:07
【问题描述】:
请,我在使用 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 天。
【问题讨论】: