【问题标题】:Add an empty row at the last in the DatagridView in WinformWinform中DatagridView最后添加一个空行
【发布时间】:2019-08-01 10:11:27
【问题描述】:

我有一个存储库,其中包含一种从数据库中获取整个列表的方法和如下的表单加载方法。我必须在单击按钮的最后一行下添加一个空行,以便我可以编辑单元格并保存到数据库中(我有另一种方法)。

存储库:

//display_tbl is storedproc
public List<ABC> FetchActiveABC() //Method for fetching the whole list into datagridview
{
    var listABC = new List<ABC>();
    try
    {
        using (var cmd = _db.GetStoredProcCommand("display_tbl"))
        {
            using (var a = new SafeDataReader(_db.ExecuteReader(cmd)))
            {
                while (a.Read())
                {
                    listABC.Add(Loadabc(a));
                }
            }
        }
    }
    catch { /* ... */}

    return listABC;
}

表格:

private List<ABC> lstABC = null;

private void Form1_Load(object sender, EventArgs e)
{
    lstABC = new ABCRepository().FetchActiveABC();
    DataGridView.DataSource = lstABC;
}

这会将整个列表显示到datagridview

【问题讨论】:

  • 你已经尝试了什么?
  • 使用BindingSourceBindingList&lt;ABC&gt; 作为DataGridView 的数据源。然后轻松调用绑定源或绑定列表的AddNew 方法。只要确保ABC 有无参数构造函数。
  • @RezaAghaei 谢谢,是的,这适用于添加空行,但是如果我们想添加具有某些值的行怎么办?如果我们想给出一些参数?
  • 还有一个接受对象实例的Add方法。
  • 是的,使用它不会添加任何新行,它会替换当前行。我需要在 dgv 中存在的任何行下方添加一个新行。

标签: c# windows winforms


【解决方案1】:

欢迎 Sarthak 加入 stackoverflow。

根据您的要求,您希望在加载 ABCRepository 数据后在最后添加一行。 所以朋友你可以试试这个,

 dataGridView1.Rows.Add(1);

此代码将添加一行,如果您想最后添加一行,那么您可以在这样的代码之后编写此代码,

  private void Form1_Load(object sender, EventArgs e)
        {
            lstABC = new ABCRepository().FetchActiveABC();
            DataGridView.DataSource = lstABC;

            dataGridView1.Rows.Add(1);
        }

【讨论】:

  • 当控件绑定数据时,行不能以编程方式添加到 DataGridView 的行集合中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 2011-10-09
  • 2016-05-31
相关资源
最近更新 更多