C# datagrideview控件问题 (学习日记 2016-12-26)

需求描述:在数据绑定控件DataGridView中设置不同的行的颜色,要求错误行有醒目的红色,正确行是白色,选中行是绿色。

解决办法:经过查询MSDN得知在数据绑定控件DataGridView中有属性DefaultCellStyle属性,这个属性是用于获取和设置应用于数据绑定控件的默认单元格样式。设置的代码如下所示:

  //失败列表添加一行数据   --
        private void dtErrAdd(string code)
        {
            if (dtErrorList.Select("失败面牌='" + code + "'").Length <= 0)
            {
                dtErrorList.Rows.Add(code);
                dataGridView2.DataSource = dtErrorList;
                dataGridView2.DefaultCellStyle.BackColor = Color.Red;                //设置失败面牌的行默认颜色         --主要问题代码
                dataGridView2.DefaultCellStyle.SelectionBackColor = Color.Red;       //设置失败面牌的选中行的颜色       --主要问题代码
            }
        }


学习:枚举值除了有BackColor(背景色),SelectionBackColor(选中行背景色),还有SelectionForeColor(选中行前景色,一般是字体颜色)

另外一些常见的数据绑定控件的格式颜色,RowHeaderDefaultCellStyle(行头默认单元颜色),AlternatingRowsDefaultCellStyle(更该行的默认单元颜色),ColumHeaderDefaultCellStyle(设置列头的单元格颜色) , DefaultCellStyle(默认单元格颜色)


需求描述:要求清空DataGridView对象的数据后重新绑定进来(表结构不变,表内容为空)。

若使用dataGridView1.Rows.Clear()的方法,会删除表结构。(该方法不行

设置Datagridview对象的Datasource属性为null  ,也会把标题列也删除。该方法不行


解决办法

DataTable  dt  =  (DataTable)dataGridView1.DataSource;   //将之前的DataGridview对象绑定的数据显示转换为DataTable
dt.Rows.Clear();                                        //清空所有的行,保持表结构
dataGridView1.DataSource  =  dt;                         //重新绑定到DataGridview对象中。

思路: 想要对DataGridview控件清空数据还要保持表结构,只能重新绑定清空后的DataTable对象,具体做法使用是将DataGridView对象绑定的数据显示转换成DataTable对象,  对DataTable对象清空数据,从新绑定DataGridView对象。


需求描述:使用DataGridView控件时,要求将添加的列填充所有区域,未填充前的效果。



解决办法:使用AutoSizeColumnModel属性可以设置列宽度,填充后的效果。



学习内容:AutoSizeColumnModel属性的枚举值:

  1. AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格。  
  2. AllCellsExceptHeader 调整列宽,以适合该列中的所有单元格的内容,不包括标题单元格。  
  3. ColumnHeader 调整列宽,以适合列标题单元格的内容。  
  4. DisplayedCells 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,包括标题单元格。  
  5. DisplayedCellsExceptHeader 调整列宽,以适合当前屏幕上显示的行的列中的所有单元格的内容,不包括标题单元格。  
  6. Fill 调整列宽,使所有列的宽度正好填充控件的显示区域,只需要水平滚动保证列宽在DataGridViewColumn.MinimumWidth 属性值以上。相对列宽由相对 DataGridViewColumn.FillWeight 属性值决定。  
  7. None 列宽不会自动调整。  
  8. NotSet 列的大小调整行为从 DataGridView.AutoSizeColumnsMode 属性继承

需求描述:在使用DataGridView控件时候,会出现一个带星号的空行,要求去掉带*号的行,未去除*号效果。



解决办法:设置AllowUserToAddRows属性值为false ,去除*号效果。




学习内容:是否允许用户对DataGridView操作

  1. AllowUserToAddRows属性:指示是否允许用户增加一行数据, 值为turefalse
  1. AllowUserToDeleteRows属性:指示是否允许用户删除一行数据, 值为turefalse
  1. AllowUserToOrderColumns属性:指示是否允许用户手动重新放置列, 值为turefalse
  1. AllowUserToResizesColumns属性: 指示用户是否可以调整列的大小, 值为turefalse

需求描述:使用DataGridView控件时,去除左侧空白方块(实际是行头),只要列名。未去除白色方块效果。



解决方法:设置RowHeaderVisible属性可以去除左侧空白方块(行标题),去除行头效果。



学习内容:针对行标题的操作

  1.  RowHeaderBorderStyle :     设置行标题单元格的边框样式。
  2.  RowHeaderDefaultCellStyle :设置应用于行标题单元格的默认样式。
  3.  RowHeaderVisible :               指示是否显示包含行标题的列。
  4.  RowHeaderWidth:                  设置包含行标题的列的宽度(以像素为单位)。
  5.  RowHeaderWidthSizeMode :获取或设置一个值,该值指示是否可以调整行标题的宽度,以及它是由用户调整还是根据标题的内容自动调整。(常用AutoSizeToFirstHeader枚举值)。


需求描述;

jiejue



发布了29 篇原创文章 · 获赞 8 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章