DataGridView新特色、常用操作

简介: 1、自定义列 Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their      Behavior and Appearance      Host Controls in Windows Forms DataGridView Cells      继承 DataGridViewTextBoxCell 类生成新的Cell类,然后再继承 DataGridViewColumn 生成新的Column类,并指定     CellTemplate为新的Cell类。
1、自定义列

Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their 
    Behavior and Appearance 
    Host Controls in Windows Forms DataGridView Cells 
    继承 DataGridViewTextBoxCell 类生成新的Cell类,然后再继承 DataGridViewColumn 生成新的Column类,并指定
    CellTemplate为新的Cell类。新生成的Column便可以增加到DataGridView中去。

2、自动适应列宽

Programmatically Resize Cells to Fit Content in the Windows Forms DataGridView Control 
    Samples:
复制   保存
DataGridView.AutoSizeColumns(
DataGridViewAutoSizeColumnCriteria.HeaderAndDisplayedRows);
DataGridView.AutoSizeColumn(
DataGridViewAutoSizeColumnCriteria.HeaderOnly,
2, false);
DataGridView.AutoSizeRow(
DataGridViewAutoSizeRowCriteria.Columns,
2, false);
DataGridView.AutoSizeRows(
DataGridViewAutoSizeRowCriteria.HeaderAndColumns,
0, dataGridView1.Rows.Count, false);


3、可以绑定并显示对象
    Bind Objects to Windows Forms DataGridView Controls 

4、可以改变表格线条风格
    Change the Border and Gridline Styles in the Windows Forms DataGridView Control 
    Samples:
复制   保存
this.dataGridView1.GridColor = Color.BlueViolet;
this.dataGridView1.BorderStyle = BorderStyle.Fixed3D;
this.dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.None;
this.dataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
this.dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;


5、动态改变列是否显示,和动态改变列的显示顺序
    Change the Order of the Columns in the Windows Forms DataGridView Control 
    Samples:
复制   保存
customersDataGridView.Columns["CustomerID"].Visible = false;
customersDataGridView.Columns["ContactName"].DisplayIndex = 0;
customersDataGridView.Columns["ContactTitle"].DisplayIndex = 1;
customersDataGridView.Columns["City"].DisplayIndex = 2;
customersDataGridView.Columns["Country"].DisplayIndex = 3;
customersDataGridView.Columns["CompanyName"].DisplayIndex = 4;


6、可以在列中显示图像
    Display Images in Cells of the Windows Forms DataGridView Control 
    Samples:
复制   保存
Icon treeIcon = new Icon(this.GetType(), "tree.ico");
DataGridViewImageColumn iconColumn = new DataGridViewImageColumn();
iconColumn.Image = treeIcon.ToBitmap();
iconColumn.Name = "Tree";
iconColumn.HeaderText = "Nice tree";
dataGridView1.Columns.Insert(2, iconColumn);


7、格式化显示内容:
    Format Data in the Windows Forms DataGridView Control 
    Samples:
复制   保存
this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format = "c";
this.dataGridView1.Columns["ShipDate"].DefaultCellStyle.Format = "d";
this.dataGridView1.DefaultCellStyle.NullValue = "no entry";
this.dataGridView1.DefaultCellStyle.WrapMode = DataGridViewWrapMode.Wrap;
this.dataGridView1.Columns["CustomerName"].DefaultCellStyle.Alignment =
DataGridViewContentAlignment.MiddleRight;


8、在拖动列的滚动条时可以将指定的列冻结
    Freeze Columns in the Windows Forms DataGridView Control 
    Samples:将指定列及以前的列固定不动
复制   保存
this.dataGridView1.Columns["AddToCartButton"].Frozen = true;


9、获取选择的单元格,行,列
    Get the Selected Cells, Rows, and Columns in the Windows Forms DataGridView Control 
    Samples:
       见msdn。

10、显示录入时出现的错误信息
    Handle Errors that Occur During Data Entry in the Windows Forms DataGridView Control 
    Samples:
复制   保存
private void dataGridView1_DataError(object sender,
DataGridViewDataErrorEventArgs e)
{
// If the data source raises an exception when a cell value is
    // commited, display an error message.
    if (e.Exception != null &&
e.Context == DataGridViewDataErrorContext.Commit)
{
MessageBox.Show("CustomerID value must be unique.");
}
}


11、大数据量显示采用Virtual Mode 
    Implement Virtual Mode in the Windows Forms DataGridView Control 

12、设置指定的列只读
    Make Columns in the Windows Forms DataGridView Control Read-Only 
    Samples:
复制   保存
dataGridView1.Columns["CompanyName"].ReadOnly = true;


13、移去自动生成的列
    Remove Autogenerated Columns from a Windows Forms DataGridView Control 
    Sample:
复制   保存
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = customerDataSet;
dataGridView1.Columns.Remove("Fax");

或:
复制   保存
dataGridView1.Columns["CustomerID"].Visible = false;


14、自定义选择模式
    Set the Selection Mode of the Windows Forms DataGridView Control 
    Sample:
复制   保存
this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
this.dataGridView1.MultiSelect = false;


15、自定义设定光标进入单元格是否编辑模式(编辑模式)
    Specify the Edit Mode for the Windows Forms DataGridView Control
复制   保存
this.dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;


16、新行指定默认值
    Specify Default Values for New Rows in the Windows Forms DataGridView Control 
    Sample:
复制   保存
private void dataGridView1_DefaultValuesNeeded(object sender,
System.Windows.Forms.DataGridViewRowEventArgs e)
{
e.Row.Cells["Region"].Value = "WA";
e.Row.Cells["City"].Value = "Redmond";
e.Row.Cells["PostalCode"].Value = "98052-6399";
e.Row.Cells["Region"].Value = "NA";
e.Row.Cells["Country"].Value = "USA";
e.Row.Cells["CustomerID"].Value = NewCustomerId();
}


17、数据验证
    Validate Data in the Windows Forms DataGridView Control 
    Samples:
复制   保存
private void dataGridView1_CellValidating(object sender,
DataGridViewCellValidatingEventArgs e)
{
// Validate the CompanyName entry by disallowing empty strings.
    if (dataGridView1.Columns[e.ColumnIndex].Name == "CompanyName")
{
if (e.FormattedValue.ToString() == String.Empty)
{
dataGridView1.Rows[e.RowIndex].ErrorText =
"Company Name must not be empty";
e.Cancel = true;
}
}
}
目录
相关文章
|
Web App开发 测试技术 API
WebDriver库:实现对音频文件的自动下载与保存
WebDriver库:实现对音频文件的自动下载与保存
|
Android开发
Android实现语音播报的两种方式
Android实现语音播报的两种方式
758 0
|
XML Java Maven
Maven资源拷贝插件和常用依赖
Maven资源拷贝插件和常用依赖
469 0
|
3月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
290 1
|
人工智能 自然语言处理 搜索推荐
人工智能在智能客服系统中的情感识别与应对
人工智能在智能客服系统中的情感识别与应对
|
JSON Linux 应用服务中间件
CentOS 7 上编译安装 Podman 3.4.4
CentOS 7 上编译安装 Podman 3.4.4
938 0
麒麟系统卸载openjdk
麒麟系统卸载openjdk
365 0
|
XML JSON 前端开发
高德地图Web服务API的开发实例解析
高德地图Web服务API的开发实例解析
608 0
高德地图Web服务API的开发实例解析
|
NoSQL C++ 容器
每天学点GDB(五)
本节分享使用GDB来进行STL容器的调试。
1950 0
|
SQL 关系型数据库 测试技术
FlinkSQL 的行级权限解决方案及源码
FlinkSQL的行级权限解决方案及源码,支持面向用户级别的行级数据访问控制,即特定用户只能访问授权过的行,隐藏未授权的行数据。此方案是实时领域Flink的解决方案,类似离线数仓Hive中Ranger Row-level Filter方案。
FlinkSQL 的行级权限解决方案及源码