我想将DataGrid添加到Form。程序执行时,用户输入值,我在问题中使用这些值。我需要一个具有两列的表的类似实现,当用户输入值时,我将它们用于程序中的计算。
不需要将这些值保存到数据库中,它们只是在程序中使用。
如何在C#中执行此操作?
答案 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事件
希望这会有所帮助......