C#DataGridView单元将在选择时自动清除



我在其中具有带有datagridview(DGV)的Windows表单应用程序。我使用Visual Studio UI将列添加到DGV中,然后编程添加一些默认值的行。我的问题是一旦添加了行,选择的任何单元都会自动清空其中的任何值 - 甚至只读单元格!

我只是在处理DGV的" CellValueChanged"事件,而所做的只是验证行以确保至少存在一个有效的值组合,然后启用一个按钮。

为了增加混乱,所选细胞清除问题并不总是发生。添加行后,直到进行更改或执行用行重新加载DGV的动作,所有单元将清除。之后,几个或没有单元将自己清除。

是否有人经历过或知道一种解决问题的方法?我从Google那里得到的只是"如何使细胞清除"等。

谢谢,

  • 马特

*更新 *

用于将新行添加到DGV的代码:

        metaMapGrd.Rows.Clear();
        ((DataGridViewComboBoxColumn)metaMapGrd.Columns[1]).DataSource = _excel.ListHeaders(worksheetListCmb.SelectedItem.ToString());
        foreach (Field f in _sharePoint.CurrentFieldList)
        {
            // skip the key field matching portion.  These should be for comparison only.
            if (f.Title == spListKeyCmb.SelectedItem.ToString())
            {
                continue;
            }
            DataGridViewRow row = new DataGridViewRow();
            metaMapGrd.Rows.Add(row);
            DataGridViewTextBoxCell spcell = new DataGridViewTextBoxCell();
            spcell.Value = f.Title;
            spcell.ToolTipText = f.TypeAsString;
            row.Cells["spListColumn"] = spcell;
            DataGridViewCheckBoxCell fcell = new DataGridViewCheckBoxCell();
            fcell.Value = true;
            row.Cells["useThisColumn"] = fcell;
        }
        metaMapGrd.CurrentCell = null;

根据我们的聊天,我建议不要尝试手动处理datagridview,而是使用dataObject的基础列表,然后将DGV数据键入该列表。

使用隐藏的列来获取有关SharePoint ColumnType的信息。

hoipe这有帮助。

相关内容

  • 没有找到相关文章

最新更新