C# dataGridView控件相关属性

1.默认不选定行和列

dataGridView1.ClearSelection();

2.单元格索引发生改变事件

3.根据内容自动调整行高和列宽

 dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader; ///根据数据内容自动调整列宽 
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders; ///根据数据内容自动调整行高

4.删除第一列空白显示

 dataGridView1.RowHeadersVisible = false;

5.不允许最后一列自动添加

 dataGridView1.AllowUserToAddRows = false;

6.点击列名抛异常

异常信息为:System.NullReferenceException:“未将对象引用设置到对象的实例

通过设置dataGridView1的列名点击后不允许排序即可解决此问题,如下代码

  for (int i = 0; i < dataGridView1.Columns.Count; i++)
    {
      dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;  //不允许点击列明进行排序
    }

7. 判断dataGridView控件中某列的值是否为空

 private bool CheckData() //遍历datagridview控件中某列的值是否为空 返回真表示不为空,否则为空
 {
     bool isColumnEmpty = false;
     string cellnumber=string.Empty;
     foreach (DataGridViewRow row in dataGridView1.Rows)
     {
         if (row.Cells[2].Value != null && row.Cells[2].Value.ToString() != "") //列索引从0开始,当前判断第3列是否为空
         {
             isColumnEmpty = true;  
         }
         else
         {
             cellnumber = row.Cells[0].Value.ToString(); // 获取当前行的序号
             isColumnEmpty = false;
             break;
         }
     }
     if (isColumnEmpty)// isColumnEmpty=true 表示不为空
     {
         return true;
     }
     else  //为空
     {
         MessageBox.Show($"数据缺失行的序号为{cellnumber}"); //打印缺失行的坐标(如有)
         return false;
     }
 }

判断结果值列是否存在空数据,运行结果:输出序号为6

8.按照控件大小和列数量,自动均分列宽度

  private void DgvAverage() //按照列数量,均分列宽度
  {
      int width = dataGridView1.Width / dataGridView1.Columns.Count; //按照控件大小和列数量计算每列宽度
      foreach (DataGridViewColumn col in dataGridView1.Columns)
      {
          col.Width = width; //给每列宽度赋值
      }
  }

9.设置控件列按照比例大小进行列宽显示

 private void SetDgvPercentage() //设置列宽为百分比大小
 {
     // 设置DataGridView的AutoSizeColumnsMode属性为Fill
     dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
     // 设置每列的MinimumWidth和FillWeight属性
     dataGridView1.Columns[0].MinimumWidth = 100; //设置当前列的最小宽度
     dataGridView1.Columns[0].FillWeight = 2;     //设置比例大小
     dataGridView1.Columns[1].MinimumWidth = 100;
     dataGridView1.Columns[1].FillWeight = 3;
     dataGridView1.Columns[2].MinimumWidth = 100;
     dataGridView1.Columns[2].FillWeight = 5;
     /****
      ...
     添加其它列,如有
      ...
      *****/
 }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值