从第二个表单访问选项卡控件并将表单插入第一个表单选项卡控件

拜托,我在使用 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 天。


ITMISS
浏览 185回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP