Datagridview rowvalidating delete

Data Grid View控件 Data Grid View是用于Windows Froms 2.0的新网格控件。它可以取代先前版本中Data Grid控件，它易于使用并高度可定制，支持很多我们的用户需要的特性。 关于本文档： 本文档不准备面面俱到地介绍Data Grid View，而是着眼于深入地介绍一些技术点的高级特性。 本文档按逻辑分为5个章节，首先是结构和特性的概览，其次是内置的列/单元格类型的介绍，再次是数据操作相关的内容，然后是主要特性的综述，最后是最佳实践。 大部分章节含有一个“Q & A”部分，来回答该章节相关的一些常见问题。注意，某些问题会由于知识点的关联性重复出现在多个章节。这些问题、答案及其附带的示例代码都包含在本文档的附录部分。 内容 1 何为Data Grid View.. Excluding rows is useful to avoid a performance penalty when you are working with a large quantity of rows. For all sizing enumerations, values with names that refer to displayed cells limit their calculations to cells in displayed rows. The new sizes are automatically calculated to display all cell contents without clipping. When automatic sizing is disabled, you can programmatically set the exact width or height of rows, columns, or headers through the following properties: These methods will resize rows, columns, or headers once rather than configuring them for continuous resizing. For example, if a column is hidden after it is automatically sized to fit a large cell value, the hidden column will not change its size if the row containing the large cell value is deleted. Content-based automatic sizing modes do not affect rows, columns, or headers that you have hidden by setting the row or column Visible property or the control Row Headers Visible or Column Headers Visible properties to false. Use content-based automatic resizing with caution when working with large amounts of data. The value of this property is based on the column's Auto Size Mode property value unless that value is Not Set, in which case the control's Auto Size Columns Mode value is inherited.

To avoid performance penalties, use the automatic sizing modes that calculate sizes based only on the displayed rows rather than analyzing every row in the control.

You can customize sizing behaviors when working with derived Data Grid View cell, row, and column types by overriding the Data Grid View Cell. The protected resizing method overloads are designed to work in pairs to achieve an ideal cell height-to-width ratio, avoiding overly wide or tall cells.

For example, you might programmatically resize all columns immediately after loading data, or you might programmatically resize a specific row after a particular cell value has been modified. Get Preferred Width() methods or by calling protected resizing method overloads in a derived Data Grid View control.

Because Not Set restores the value inheritance, the Resizable property will never return a Not Set value unless the row or column has not been added to a Data Grid View control.