【问题标题】:How do I create a DataGrid in C#?如何在 C# 中创建数据网格?
【发布时间】:2009-04-09 09:51:39
【问题描述】:

我想将 DataGrid 添加到表单。当程序执行时,用户输入值,我在问题中使用这些值。对于具有两列的表,我需要一个类似的实现,当用户输入值时,我使用它们在程序中进行计算。

不需要将这些值保存到数据库中,它们只会在程序中使用。

如何在 C# 中做到这一点?

【问题讨论】:

  • 您能否对您的问题进行更多解释。您是否使用 Windows 应用来执行此操作?
  • 是的,我是 Windows 应用程序,我只想添加一个表格,但 c# 中没有表格,所以除了它还有其他方法
  • 您说您将数据网格用于相同目的。那你为什么需要另一个控件呢?
  • 您可以使用 datagridview 然后将 AlloUserToAddRows 设置为 true 并创建一个包含两列的数据表并将其作为数据源添加到 gridview。
  • 如果这不是您要找的答案,请见谅

标签: c# winforms datagrid


【解决方案1】:

在winforms环境下,可以绑定强类型集合作为数据源;集合中对象的每个属性构成一列(严格来说,我相信它会计算出集合返回的类型的属性,而不是其中的单个项目)

【讨论】:

    【解决方案2】:

    如果您正在编写 WinForms 应用程序,那么您可以使用 DataTable 来存储数据并使用 DataGridView 来显示它。只需创建 DataTable:

    dataTable = new DataTable();
    

    以编程方式创建您需要的列:

    var columnSpec = new DataColumn();
    columSpec.DataType = typeof(decimal);  // If it holds a decimal
    columSpec.ColumnName = "Interest Rate";
    dataTable.Columns.Add(columnSpec);
    

    使用设计器将 DataGridView 添加到表单 - 但不要在创建表后将其绑定到网格:

    dataGridView.DataSource = dataTable;
    

    您可以从设计器视图中设置网格上的属性。

    我在只读情况下完成了此操作,其中 DataTable 从程序中填充并仅显示它。用户所能做的就是调整列的大小、重新排序或设置列的可见性。要添加新行,您需要挂钩 RowsAdded 事件

    【讨论】:

      【解决方案3】:

      重新措辞罗兰·肖

      您不需要将数据库绑定到数据网格。如果您将数据填充到强类型或通用集合中,则可以将数据网格绑定到集合。数据网格将填充集合中的数据。

      它将属性名称作为列,行将按照集合中的行显示。

      如果您想要用户输入,那么我认为您应该考虑使用更好的网格控件。数据网格不适用于此目的。我不记得是否为 .Net 重做了 flexgrid(ocx 之一)。

      【讨论】:

        【解决方案4】:

        您可以使用 datagridview 并通过代码构建数据表并添加列,并将 datagridview 的数据源设置为此数据表,并将 Dataggridview 属性窗口中的 AllowUserToAddRows 设置为 true ( true 是默认值)。

        如果您想在完整的 ro 更新后进行计算,那么您可以使用 RowPrePaint 事件,或者如果您希望在每个单元格中的数据更新后进行计算,那么您可以使用 datagridview 的 CurrentCellChanged 事件.

        希望这会有所帮助....

        【讨论】:

          猜你喜欢
          • 2012-02-19
          • 1970-01-01
          • 1970-01-01
          • 2011-03-21
          • 1970-01-01
          • 2019-05-04
          • 1970-01-01
          • 2013-08-13
          • 1970-01-01
          相关资源
          最近更新 更多