通常 DataGridView 的最下面一行是用户新追加的行(行头显示 * )。如果不想让用户新追加行即不想显示该新行,可以将 DataGridView 对象的 AllowUserToAddRows 属性设置为 False。
DataGridView1.AllowUserToAddRows = false;
但是,可以通过程序: DataGridViewRowCollection.Add 为 DataGridView 追加新行。
当用户选择“新行”作为当前行,DataGridView会触发DefaultValuesNeeded事件。在该事件中可以访问新行,并为其生成默认值,为用户输入提供方便。
1
2
3
4
5
6
7
8
9 |
private void dataGridView1_DefaultValuesNeeded( object
sender, DataGridViewRowEventArgs e) { e.Row.Cells[ "Region" ].Value = "WA" ; e.Row.Cells[ "City" ].Value = "Redmond" ; e.Row.Cells[ "PostalCode" ].Value = "98052-6399" ; e.Row.Cells[ "Region" ].Value = "NA" ; e.Row.Cells[ "Country" ].Value = "USA" ; e.Row.Cells[ "CustomerID" ].Value = NewCustomerId(); } |
用户开始在新行输入数据之前,新行的IsNewRow属性值为true,即第一次触发改行的CellEnter和CellBeginEdit事件中IsNewRow事件为Ture。 一旦用户开始输入,这一行就不再是新行了,DataGridView中会产生一个“新”的新行,看下面示意图:
在添加“新”的新行时,会触发UserAddedRow事件,它的事件处理函数的第二个参数有属性Row,指定了这个“新”的新行。如果用户此时按下Escape键,“新”的新行会被移除,这会触发UserDeletingRow事件,它的事件处理函数的第二个参数的属性Row指定了“新”的新行。
WinForm:DataGridView新增加行,布布扣,bubuko.com
原文:http://www.cnblogs.com/rainman/p/3661909.html