在选择的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);
}