【问题标题】: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 它绑定到数据表

标签: c#


【解决方案1】:

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

【讨论】:

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

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

【讨论】:

    猜你喜欢
    • 2016-04-22
    • 2013-05-05
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2017-10-09
    相关资源
    最近更新 更多