【问题标题】:C# windows forms DataGrid remove empty row at bottom of the gridC# windows 窗体 DataGrid 删除网格底部的空行
【发布时间】:2017-02-02 11:35:07
【问题描述】:

您好,我的 Windows CE 应用程序中有一个 C# windows 窗体 DataGrid。 问题是当我将数据绑定到网格时,它在网格底部显示一个空行。如下

我已经阅读了很多关于此的答案,所有答案都与DataGridView 有关。而且在 WPF 中它说要设置以下属性

CanUserAddRows="false"

他们还说要改变属性

AllowUserToAddRows = false;

但是没有这样的可用属性.. 我正在使用 Visual Studio 2008

这就是我填充网格的方式

DataTable dtAddedItems = new DataTable();
DataColumn column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int32");
            column.AutoIncrement = true;
            column.AutoIncrementSeed = 1;
            column.AutoIncrementStep = 1;
            dtAddedItems.Columns.Add(column);
            dtAddedItems.Columns.Add("ItemHeadId");
            dtAddedItems.Columns.Add("ItemName");
            dtAddedItems.Columns.Add("IssuedQty");

            dtgItems.DataSource = dtAddedItems;

我该怎么做?

【问题讨论】:

  • 请显示代码。如何设置数据源?
  • @OfirWinegarten 我已经更新了问题
  • 如果你去datagridview的属性,你可以找到AllowUserToAddRows

标签: c# visual-studio-2008 datagrid windows-ce


【解决方案1】:

在winforms中:AllowUserToAddRows = false;

编辑 在您的编辑和评论之后

这是DataGrid 所以来自MSDN

您可以通过使用DataView 作为数据源并将AllowNew 属性设置为false,创建一个允许用户编辑数据但阻止他们添加新行的网格。

所以你的代码应该是:

DataTable dtAddedItems = new DataTable();
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.AutoIncrement = true;
column.AutoIncrementSeed = 1;
column.AutoIncrementStep = 1;
dtAddedItems.Columns.Add(column);
dtAddedItems.Columns.Add("ItemHeadId");
dtAddedItems.Columns.Add("ItemName");
dtAddedItems.Columns.Add("IssuedQty");

DataView dv = dtAddedItems.DefaultView;
dv.AllowNew=false;
dtgItems.DataSource = dv;   

【讨论】: