如何在C#中创建DataGrid?

时间:2009-04-09 09:51:40

标签: c# winforms datagrid

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

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

如何在C#中执行此操作?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

如果您正在编写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);

使用Designer将DataGridView添加到表单 - 但不要,然后在创建表后使用以下命令将其绑定到网格:

dataGridView.DataSource = dataTable;

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

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

答案 2 :(得分:0)

重写Rowland Shaw

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

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

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

答案 3 :(得分:0)

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

如果要在进行完整ro更新后进行计算,则可以使用RowPrePaint事件,或者如果要在每个单元格中的数据更新后进行计算,则可以使用datagridview的CurrentCellChanged事件

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