DataGridView

字体设置        

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();
            }
        }


如何清空DataGridView


一、就是利用循环删除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;
        }
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值