【问题标题】:tab control with datagridview is not working in winforms带有datagridview的选项卡控件在winforms中不起作用
【发布时间】:2019-10-16 09:40:17
【问题描述】:

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

当我单击 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(以激活它)然后单击一个单元格?
  • @KreepN 我完全按照你说的做了(它显示了细节),但这不是我想要的。我想先点击单元格,然后我想点击标签
  • 两个选项卡上不能有相同的网格。所以 SelectedTab 总是会有相同的值。
  • 就是这样,您发布的代码会在您单击单元格时触发,因此当它运行 if 条件时,您无法再选择选项卡,因为代码已经完成运行。

标签: c# .net winforms datagridview tabs


【解决方案1】:

然后在该行上放置一个断点。企业标识是否大于 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
    }
}

只需从 if 块中省略 tccorporates.SelectedTab == tpDetailstccorporates.SelectedTab == tpmembers 语句。当用户点击 tab2 时,一切都已经为他们加载好了。

【讨论】:

    【解决方案2】:

    尝试为 tabcontrol 实现 SelectedIndexChanged 事件。所以当你在标签页之间切换时,更新各自的控件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多