使用datagridview的选项卡控件在winforms中不起作用

时间:2011-09-23 14:33:25

标签: c# .net winforms datagridview tabs

我有一个带有2个数据网格视图控件的表单1和带有两个选项卡的选项卡控件。

当我点击datagridview单元格时,我想将内容加载到两个标签中。

第一个标签

我想在第一个标签的文本框中显示所选的datagridview行值....这样工作正常....

第二个标签

我想在此选项卡中填充其他datagridview,具体取决于主要数据格式视图中所选行值(单元格[0]值)

但这不起作用。

这是我到目前为止所做的......

private void dgvCorporatedetails_CellClick(object sender, DataGridViewCellEventArgs e)
{
        textboxreadonly(false);
        btnAdd.Enabled = false;

        if (e.RowIndex >= 0)
        {
            int.TryParse(dgvCorporatedetails.Rows[e.RowIndex].Cells[0].Value.ToString(), out corporateid);
            if (corporateid > 0 && tccorporates.SelectedTab == tpDetails)
            {
                getselectedrecord(corporateid);

            }
            if (corporateid > 0 && tccorporates.SelectedTab == tpmembers)
            {

                Getmembersdetails(corporateid);

            }

        }

    }

它不会进入这种情况if (corporateid > 0 && tccorporates.SelectedTab == tpmembers)

即使我单击datagridview单元格,然后我选择tab2(tpmembers),datagridview也不会在此标签页中加载(tpmembers)

任何人都可以帮忙...

2 个答案:

答案 0 :(得分:0)

然后在该行放置一个断点。 corporateid大于0? SelectedTab是否设置为tpmembers?如果第一个if语句运行,表明当前选中的选项卡是tpDetails,则第二个if语句将不会运行。您所写的if语句是互斥的。

现在你的方式,如果用户在tab1上并在网格中选择一行,那么只有tab1将显示有关所选行的数据。如果他们想要在tab2中查看数据,他们必须再次单击您的网格以将数据加载到该选项卡中。如何将所有数据一次加载到两个选项卡中,无论当前选择哪一个?

int corporateid;
if (e.RowIndex >= 0 && int.TryParse(dgvCorporatedetails.Rows[e.RowIndex].Cells[0].Value.ToString(), out corporateid))
{
    if (corporateid > 0)
    {
        getselectedrecord(corporateid);  // load data into tpdetails tab
        Getmembersdetails(corporateid);  // load data into tpmembers tab
    }
}

答案 1 :(得分:0)

尝试为tabcontrol实现SelectedIndexChanged事件。因此,当您在标签页之间切换时,请更新相应的控件。