我有一个contextmenustrip,允许用户在gridview上插入ne行。我希望每当用户单击上下文菜单中的插入选项时,将在选择当前索引后插入新行。
我是这样做的。
private void insertRowToolStripMenuItem_Click(object sender, EventArgs e)
{
//dataGridView1.Rows.Insert(dataGridView1.Rows.Count - 1, row);
}
但它不起作用。有人请帮助我。 TQ
答案 0 :(得分:1)
试试这个,
仅当您尚未将数据源设置为DataGridView控件时,此方法才有效。
int iRowIndex = dataGridView1.Rows.Add();
iRowIndex将保存添加行的索引号。
DataGridView.Rows.Insert()
主要用于在特定位置的DataGridViewRowCollection中插入DataGridViewRow。例如,如果您已经在网格中输入了10行,并且想要在第5行之后添加另一行,那么您可以使用此功能。
如果您的网格已绑定,那么您可以这样做。当网格绑定到数据源时,您无法以编程方式将行添加到网格中。您需要在数据源中添加行,该行将自动添加到DataGridView中。
适用于DataView
DataView dv = (DataView)dataGridView1.DataSource();
DataRowView dvr = dv.AddNew();
适用于DataTable
DataTable dt = (DataTable)dataGridView1.DataSource();
DataRow dr = dt.NewRow();
//dr["columnname"] = Assign Value for each column
dt.Rows.Add(dr);
对于DataSet
DataTable dt = ((DataSet)dataGridView1.DataSource()).Tables[TableNameOrIndex];
DataRow dr = dt.NewRow();
//dr["columnname"] = Assign Value for each column
dt.Rows.Add(dr);
答案 1 :(得分:0)
如果您只想插入一个空行,请尝试使用
If DataGridView1.SelectedRows.Count > 0 Then
DataGridView1.Rows.Insert(DataGridView1.SelectedRows(0).Index)
End If