以编程方式将新行添加到数据网格视图

Posted

技术标签:

【中文标题】以编程方式将新行添加到数据网格视图【英文标题】:adding new row to datagrid view programmatically 【发布时间】:2012-07-25 00:40:04 【问题描述】:

我有一个从数据库中获取数据并显示给用户的 datagridview,我还有三个文本框,如果我在 datgrid 中选择一个已经存在的行,然后通过文本输入值,用户可以通过这些文本框将值输入到 datagrid 视图中框进行更改,当我按下更改按钮时,在 db 和 datagridview 中都成功进行了更改 但是如果我在 datagrid 视图中选择一个空行并尝试输入值,我无法将新行添加到 datagrid 视图中,尽管允许用户添加新行设置为 true。

 private void txtName_TextChanged(object sender, EventArgs e)

    if (dataGridView1.SelectedRows.Count == 1)
    
        dataGridView1.SelectedRows[0].Cells["Name"].Value = txtName.Text;
    


private void txtRelation_TextChanged(object sender, EventArgs e)

    if (dataGridView1.SelectedRows.Count == 1)
    
        dataGridView1.SelectedRows[0].Cells["Relation"].Value = txtRelation.Text;
    

private void txtID_TextChanged(object sender, EventArgs e)

    if (dataGridView1.SelectedRows.Count == 1)
    
        dataGridView1.SelectedRows[0].Cells["ID"].Value = txtID.Text;
    


【问题讨论】:

你的 DataGridView 是如何绑定的? @DavidB 抱歉,我对此完全陌生,我正在对现有代码进行修改,这是什么意思?我的 DataGridView 从现有数据库中获取数据 @DavidB 它绑定到数据表 【参考方案1】:

检查您的网格视图是否为只读。如果 Readonly 为 true,则将其设置为 false 以允许用户添加新行。另一个原因可能是 DataGridView 的“EditMode”属性。如果您想允许用户添加新行,则不应为“以编程方式编辑

【讨论】:

readonly 是 false 编辑模式是在击键或 f2 时编辑并允许用户添加新行设置为 true【参考方案2】:

您必须双击一行才能真正创建一个新行。但是,如果您不想承受双击的压力,您可以让行选择事件在行上执行单击

【讨论】:

以上是关于以编程方式将新行添加到数据网格视图的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式将行添加到带有背景色的网格[重复]

尝试以编程方式使用嵌套的 Stack 视图制作网格

网格视图组合框

以编程方式删除数据网格视图中的行标题

AG-Grid + React - 添加新行时忽略网格排序

Android 编程:如何以网格方式以编程方式创建各种视图类型