2009-04-09 43 views
0

我想将一个DataGrid添加到窗体。程序执行时,用户输入值并在问题中使用这些值。对于有两列的表格,我需要一个类似的实现,当用户输入值时,我将它们用于程序中的计算。如何在C#中创建DataGrid?

没有要求将这些值保存到数据库,他们只是将在程序中使用。

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

+0

你可以给你的问题更多的解释。你使用Windows应用程序来做到这一点? – rahul 2009-04-09 09:53:39

回答

2

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

1

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

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事件

0

重新措辞罗兰肖

新行,您不必为绑定到DataGrid的数据库。如果您将数据填充到强类型或泛型集合中,则可以将数据网格绑定到集合。 datagrid将填充集合中的数据。

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

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

0

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

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

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