将选定的TreeViewNode添加到DataGridView行

时间:2016-06-08 13:02:57

标签: c# winforms datagridview

在选择的TreeView Node事件上,应添加DataGridView中的新行,其中包含来自节点的一些信息。但是,如果不替换现有的DataGridView行,我就无法在DataGridView中添加新行。

DatagridView列以自定义节点属性命名,并且所有行单元格必须根据节点对象属性的名称放在列中。

这是我到目前为止所做的事情

public static void AddToGrid(TreeNode node, DataGridView gridview)
{
    int rowIndex;
    if (gridview.RowCount > 0)
        rowIndex = gridview.RowCount +1;
    else rowIndex = gridview.Rows.Add();

    var row = gridview.Rows[rowIndex];
    row.Cells["property name"].Value = node.Text;
}

当我使用此函数时,会在DataGridView中创建一个新的Row。 DataGridView中是否已有一行替换现有行。我希望它添加一个新的Row并保留现有的。

更新

经过几个小时的搜索,我改变了代码,试图弄清楚这一点,但结果仍然相同。新行取代了旧行。新的尝试:

public static void AddToGrid(TreeNode node, DataGridView gridview)
{
    DataGridViewRow row = new DataGridViewRow();
    row.CreateCells(gridview);
    //row.Cells["property name"].Value = node.Text <- stopped working. Error: Cannot find column named "property name". (the column name do exist)
    row.Cells[0].Value = node.Text; // <- Instead I'm using this as for now
    gridview.Rows.Add(row);
}

0 个答案:

没有答案