using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace MyProject { public static class ExtensionGridView { public static DataGridView RemoveEmptyColumns(this DataGridView grdView) { foreach (DataGridViewColumn clm in grdView.Columns) { bool notAvailable = true; foreach (DataGridViewRow row in grdView.Rows) { if (! string.IsNullOrEmpty(row.Cells[clm.Index].Value.ToString())) { notAvailable = false; break; } } if (notAvailable) { grdView.Columns[clm.Index].Visible = false; } } return grdView; } } } 详见:http://www.codeproject.com/Tips/191008/Hide-DataGridView-columns-with-no-data-in-any-row.aspx#alternate2