字体设置
this.dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("宋体", 14);//列名
this.dataGridView1.DefaultCellStyle.Font = new Font("宋体", 14);//单元格内容
行设置
this.dataGridView1.RowTemplate.Height = 23;//每行高度
密码显示列
dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dataGridView1_EditingControlShowing);
/// <summary>
/// 单元格显示格式事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
// 把第4列显示*号,*号的个数和实际数据的长度相同
if (e.ColumnIndex == 5)
{
if (e.Value != null && e.Value.ToString().Length > 0)
{
e.Value = new string('*', e.Value.ToString().Length);
}
}
}
/// <summary>
/// 编辑单元格控件事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
// 编辑第4列时,把第4列显示为*号
TextBox t = e.Control as TextBox;
if (t != null)
{
if (this.dataGridView1.CurrentCell.ColumnIndex == 5)
t.PasswordChar = '*';
else
t.PasswordChar = new char();
}
}
一、就是利用循环删除DataGridViewRow的方法,代码如下:
while (this.DataGridView.Rows.Count != 0)
{
this.DataGridView.Rows.RemoveAt(0);
}
二、我们知道DataGridView有个DataSource,可以直接放数据进去,那么当我们放一个特定的空Table进去,那么也可以清空了。但是,注意如果DataGridView显示的列名是自己在设计时做好的(如绑定对应数据库表字段),如果
Table=null,
DataGridView.Source=Table这样做将会破坏DataGridView设计好的列,
因此必须保持表名和列名不变,只清空该表的数据,而再一次向让DataGridView.DataSource=Table就可以清空DataGridView了,而它的列名没有删除掉。例如:DataGridView.Source=TableTable.Clear();DataGridView.Source=Table上面的代码实现了显示数据和清空数据。
以上两种方法,第二相对比较快。
遍历datagridview:
private void PrintValues(DataTable table) { foreach(DataRow row in table.Rows) { foreach(DataColumn column in table.Columns) { Console.WriteLine(row[column]); } } }
Hide DataGridView columns with no data in any row
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;
}
}