2

我有一个非常奇怪的例外。我有一个 datagridview 绑定到一些数据。当数据源为空时,我向其中添加一些数据,更新 datagridview 并尝试将我添加的行设置为编辑模式。这是代码:

foreach (DataGridViewRow row in dataGridViewActionTemplates.Rows)
{
    if (((GridActionTemplate)row.DataBoundItem).ID == actTemplate.Id)
    {
        dataGridViewActionTemplates.CurrentCell = row.Cells[dataGridViewActionTemplates.Columns.GetFirstColumn(DataGridViewElementStates.Visible).Index];
        dataGridViewActionTemplates.BeginEdit(false);
        break;
    }
 }

当我尝试执行分配时,我得到一个“IndexOutOfRange”异常,它说“索引 -1 没有值”。这很奇怪,因为赋值右侧的索引大于零。

我将非常感谢您的帮助

4

1 回答 1

0

我记得遇到了一些类似的奇怪现象,我最终发现这与 Windows 7 中选择的 Windows 主题有关。当时我的代码在 Aero 上正常工作,没有例外,但是当在 Win 7 中启用 Classic 主题或当该代码在 Windows 2003 上运行。情况与您的情况不完全相同,所以我不知道这是否是同一个问题,但这可能是一件值得关注的事情。具体问题与列标题和行标题的索引有关,奇怪的是它们在 2 个不同的主题中返回的值不同。也就是说,您可能在不知不觉中尝试修改行标题字段而不是第一个实际数据字段。

于 2013-10-06T20:26:16.040 回答