标签:des datagridview style blog http color 使用 os io
与基于文本的值一起使用。 在绑定到数字和字符串时自动生成。
与 Boolean 和 CheckState 值一起使用。 在绑定到这些类型的值时自动生成。
用于显示图像。 在绑定到字节数组、Image 对象或 Icon 对象时自动生成。
用于在单元格中显示按钮。 不会在绑定时自动生成。 通常用作未绑定列。
用于在单元格中显示下拉列表。 不会在绑定时自动生成。 通常手动进行数据绑定。
用于在单元格中显示链接。 不会在绑定时自动生成。 通常手动进行数据绑定。
待续
待续
在 DataGridView 控件中,默认情况下文本框列使用自动排序,而其他列类型不自动排序。 有时您会希望重写这些默认设置。 例如,可以显示图像来替换文本、数字或枚举单元格值。 虽然无法排序图像,但可以排序它们表示的基础值。 SortMode = DataGridViewColumnSortMode.Automatic;
1 private void sortButton_Click(object sender, System.EventArgs e) 2 { 3 // Check which column is selected, otherwise set NewColumn to null. 4 DataGridViewColumn newColumn = 5 dataGridView1.Columns.GetColumnCount( 6 DataGridViewElementStates.Selected) == 1 ? 7 dataGridView1.SelectedColumns[0] : null; 8 9 DataGridViewColumn oldColumn = dataGridView1.SortedColumn; 10 ListSortDirection direction; 11 12 // If oldColumn is null, then the DataGridView is not currently sorted. 13 if (oldColumn != null) 14 { 15 // Sort the same column again, reversing the SortOrder. 16 if (oldColumn == newColumn && 17 dataGridView1.SortOrder == SortOrder.Ascending) 18 { 19 direction = ListSortDirection.Descending; 20 } 21 else 22 { 23 // Sort a new column and remove the old SortGlyph. 24 direction = ListSortDirection.Ascending; 25 oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None; 26 } 27 } 28 else 29 { 30 direction = ListSortDirection.Ascending; 31 } 32 33 // If no column has been selected, display an error dialog box. 34 if (newColumn == null) 35 { 36 MessageBox.Show("Select a single column and try again.", 37 "Error: Invalid Selection", MessageBoxButtons.OK, 38 MessageBoxIcon.Error); 39 } 40 else 41 { 42 dataGridView1.Sort(newColumn, direction); 43 newColumn.HeaderCell.SortGlyphDirection = 44 direction == ListSortDirection.Ascending ? 45 SortOrder.Ascending : SortOrder.Descending; 46 } 47 }
1 private void dataGridView1_SortCompare(object sender, 2 DataGridViewSortCompareEventArgs e) 3 { 4 // Try to sort based on the cells in the current column. 5 e.SortResult = System.String.Compare( 6 e.CellValue1.ToString(), e.CellValue2.ToString()); 7 8 // If the cells are equal, sort based on the ID column. 9 if (e.SortResult == 0 && e.Column.Name != "ID") 10 { 11 e.SortResult = System.String.Compare( 12 dataGridView1.Rows[e.RowIndex1].Cells["ID"].Value.ToString(), 13 dataGridView1.Rows[e.RowIndex2].Cells["ID"].Value.ToString()); 14 } 15 e.Handled = true; 16 }
1 private void Button1_Click( object sender, EventArgs e ) 2 { 3 if ( RadioButton1.Checked == true ) 4 { 5 DataGridView1.Sort( new RowComparer( SortOrder.Ascending ) ); 6 } 7 else if ( RadioButton2.Checked == true ) 8 { 9 DataGridView1.Sort( new RowComparer( SortOrder.Descending ) ); 10 } 11 } 12 13 private class RowComparer : System.Collections.IComparer 14 { 15 private static int sortOrderModifier = 1; 16 17 public RowComparer(SortOrder sortOrder) 18 { 19 if (sortOrder == SortOrder.Descending) 20 { 21 sortOrderModifier = -1; 22 } 23 else if (sortOrder == SortOrder.Ascending) 24 { 25 sortOrderModifier = 1; 26 } 27 } 28 29 public int Compare(object x, object y) 30 { 31 DataGridViewRow DataGridViewRow1 = (DataGridViewRow)x; 32 DataGridViewRow DataGridViewRow2 = (DataGridViewRow)y; 33 34 // Try to sort based on the Last Name column. 35 int CompareResult = System.String.Compare( 36 DataGridViewRow1.Cells[1].Value.ToString(), 37 DataGridViewRow2.Cells[1].Value.ToString()); 38 39 // If the Last Names are equal, sort based on the First Name. 40 if ( CompareResult == 0 ) 41 { 42 CompareResult = System.String.Compare( 43 DataGridViewRow1.Cells[0].Value.ToString(), 44 DataGridViewRow2.Cells[0].Value.ToString()); 45 } 46 return CompareResult * sortOrderModifier; 47 } 48 }
待续
标签:des datagridview style blog http color 使用 os io
原文地址:http://www.cnblogs.com/JustYong/p/3927674.html