一、添加行列并获取信息

界面如下:


代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace DataGridView
{public partial class Form1 : Form{int count = 0;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//根据Header和所有单元格的内容自动调整行的高度dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;  //添加三列for (int i = 0; i < 3; i++){dataGridView1.Columns.Add(new DataGridViewTextBoxColumn());dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;  //设置所有列自适应宽度}//三列的标题dataGridView1.Columns[0].HeaderText = "序号";dataGridView1.Columns[1].HeaderText = "日期";dataGridView1.Columns[2].HeaderText = "说明";//设置对齐方式和字体dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;dataGridView1.Font = new Font("宋体", 11);}//添加行private void button1_Click(object sender, EventArgs e){int index = this.dataGridView1.Rows.Add();this.dataGridView1.Rows[index].Cells[0].Value = count++;this.dataGridView1.Rows[index].Cells[1].Value = "2";this.dataGridView1.Rows[index].Cells[2].Value = "监听";}//获取信息private void button2_Click(object sender, EventArgs e){//获取当前活动单元格内容Console.WriteLine("当前活动单元格内容:" + dataGridView1.CurrentCell.Value);  //取得当前单元格的列IndexConsole.WriteLine("当前单元格的列Index:" + dataGridView1.CurrentCell.ColumnIndex); //取得当前单元格的行IndexConsole.WriteLine("取得当前单元格的行Index:" + dataGridView1.CurrentCell.RowIndex);   // 设定 (1, 1) 为当前单元格 dataGridView1.CurrentCell = dataGridView1[1, 1];   }}
}

测试:
点击添加:

选中(2,1)处的单元格,点击获取,命令行输出:

当前活动单元格内容:2
当前单元格的列Index:1
取得当前单元格的行Index:2

活动单元格变为(1,1)处的单元格:


二、设置单元格只读属性

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace DataGridView
{public partial class Form1 : Form{int count = 0;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//根据Header和所有单元格的内容自动调整行的高度dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;  //添加三列for (int i = 0; i < 3; i++){dataGridView1.Columns.Add(new DataGridViewTextBoxColumn());dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;  //设置所有列自适应宽度}//三列的标题dataGridView1.Columns[0].HeaderText = "序号";dataGridView1.Columns[1].HeaderText = "日期";dataGridView1.Columns[2].HeaderText = "说明";//设置对齐方式和字体dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;dataGridView1.Font = new Font("宋体", 11);/******************************新增加的代码************************************/dataGridView1.ReadOnly = true;    //设置所有单元格都不可编辑// 设置 DataGridView1 的第2列整列单元格为只读dataGridView1.Columns[1].ReadOnly = true;   // 设置 DataGridView1 的第3行整行单元格为只读dataGridView1.Rows[2].ReadOnly = true;     // 设置 DataGridView1 的[0,0]单元格为只读dataGridView1[0, 0].ReadOnly = true;        /**********************************************************************************/} //添加行private void button1_Click(object sender, EventArgs e){int index = this.dataGridView1.Rows.Add();this.dataGridView1.Rows[index].Cells[0].Value = count++;this.dataGridView1.Rows[index].Cells[1].Value = "2";this.dataGridView1.Rows[index].Cells[2].Value = "监听";}//获取private void button2_Click(object sender, EventArgs e){//获取当前活动单元格内容Console.WriteLine("当前活动单元格内容:" + dataGridView1.CurrentCell.Value); //取得当前单元格的列IndexConsole.WriteLine("当前单元格的列Index:" + dataGridView1.CurrentCell.ColumnIndex); //取得当前单元格的行IndexConsole.WriteLine("取得当前单元格的行Index:" + dataGridView1.CurrentCell.RowIndex);   // 设定 (1, 1) 为当前单元格 dataGridView1.CurrentCell = dataGridView1[1, 1];   }}
}

测试:
双击单元格,单元格不可编辑:


三、最新一行不显示

通常 DataGridView 的最下面一行是用户新追加的行(行头显示 * )


即不想显示该新行,可以将 DataGridView 对象的 AllowUserToAddRows 属性设置为 False。
代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace DataGridView
{public partial class Form1 : Form{int count = 0;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){//根据Header和所有单元格的内容自动调整行的高度dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; //添加三列for (int i = 0; i < 3; i++){dataGridView1.Columns.Add(new DataGridViewTextBoxColumn());//设置所有列自适应宽度dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;  }//三列的标题dataGridView1.Columns[0].HeaderText = "序号";dataGridView1.Columns[1].HeaderText = "日期";dataGridView1.Columns[2].HeaderText = "说明";//设置对齐方式和字体dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;dataGridView1.Font = new Font("宋体", 11);//设置所有单元格都不可编辑dataGridView1.ReadOnly = true;    // 设置 DataGridView1 的第2列整列单元格为只读dataGridView1.Columns[1].ReadOnly = true; // 设置 DataGridView1 的第3行整行单元格为只读  dataGridView1.Rows[2].ReadOnly = true;      // 设置 DataGridView1 的[0,0]单元格为只读 dataGridView1[0, 0].ReadOnly = true;               }//添加行private void button1_Click(object sender, EventArgs e){int index = this.dataGridView1.Rows.Add();this.dataGridView1.Rows[index].Cells[0].Value = count++;this.dataGridView1.Rows[index].Cells[1].Value = "2";this.dataGridView1.Rows[index].Cells[2].Value = "监听";/*****************新增加的代码********************/dataGridView1.AllowUserToAddRows = false;/*************************************************/}//获取private void button2_Click(object sender, EventArgs e){//获取当前活动单元格内容Console.WriteLine("当前活动单元格内容:" + dataGridView1.CurrentCell.Value);  //取得当前单元格的列IndexConsole.WriteLine("当前单元格的列Index:" + dataGridView1.CurrentCell.ColumnIndex);  //取得当前单元格的行IndexConsole.WriteLine("取得当前单元格的行Index:" + dataGridView1.CurrentCell.RowIndex);  // 设定 (1, 1) 为当前单元格 dataGridView1.CurrentCell = dataGridView1[1, 1];   }}
}

测试:


四、行列的隐藏和删除

(1) 行、列的隐藏

DataGridView1.Columns[0].Visible = false;    // DataGridView1的第一列隐藏
DataGridView1.Rows[0].Visible = false;       // DataGridView1的第一行隐藏

(2) 行头、列头的隐藏

DataGridView1.ColumnHeadersVisible = false;    // 列头隐藏
DataGridView1.RowHeadersVisible = false;       // 行头隐藏

(3) 行和列的删除

//删除名为"Column1"的列
DataGridView1.Columns.Remove("Column1");
//删除第一列
DataGridView1.Columns.RemoveAt(0);
//删除第一行
DataGridView1.Rows.RemoveAt(0);

(4) 删除选中行

foreach (DataGridViewRow r in DataGridView1.SelectedRows)
{if (!r.IsNewRow){DataGridView1.Rows.Remove(r);}
}

五、禁止列或者行的Resize

(1) 禁止所有的列或者行的Resize

// 禁止用户改变DataGridView1的所有列的列宽
DataGridView1.AllowUserToResizeColumns = false;
//禁止用户改变DataGridView1の所有行的行高
DataGridView1.AllowUserToResizeRows = false;

但是可以通过 DataGridViewColumn.Width 或者 DataGridViewRow.Height 属性设定列宽和行高。
(2) 禁止指定行或者列的Resize

// 禁止用户改变DataGridView1的第一列的列宽
DataGridView1.Columns[0].Resizable = DataGridViewTriState.False;
// 禁止用户改变DataGridView1的第一列的行宽
DataGridView1.Rows[0].Resizable = DataGridViewTriState.False;

(3) 列宽和行高的最小值的设定

// 第一列的最小列宽设定为 100
DataGridView1.Columns[0].MinimumWidth = 100;
// 第一行的最小行高设定为 50
DataGridView1.Rows[0].MinimumHeight = 50;

(4) 禁止用户改变行头的宽度以及列头的高度

// 禁止用户改变列头的高度
DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
// 设置用户改变行头的宽度
DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.EnableResizing;

六、列宽和行高自动调整的设定

(1) 设定所有单元格行高和列宽自动调整

// 设定包括Header和所有单元格的列宽自动调整
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
// 设定包括Header和所有单元格的行高自动调整
DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

(2) 设定指定单元格行高和列宽自动调整

// 第一列自动调整
DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
// 设定列头的宽度可以自由调整
DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
// 设定行头的宽度可以自由调整
DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;

七、行头列头的单元格

// 改变DataGridView1的第一列列头内容
DataGridView1.Columns[0].HeaderCell.Value = "第一列";
// 改变DataGridView1的第一行行头内容
DataGridView1.Rows[0].HeaderCell.Value = "第一行";
// 改变DataGridView1的左上头部单元内容
DataGridView1.TopLeftHeaderCell.Value = "左上";

八、单元格的边框、网格线样式的设定

(1)DataGridView 的边框线样式的设定
DataGridView 的边框线的样式是通过 DataGridView.BorderStyle 属性来设定的。 BorderStyle 属性设定值是一个BorderStyle 枚举: FixedSingle(单线,默认)、Fixed3D、None。
(2)单元格的边框线样式的设定
单元格的边框线的样式是通过 DataGridView.CellBorderStyle 属性来设定的。 CellBorderStyle 属性设定值是DataGridViewCellBorderStyle 枚举。
(4) 单元格的边框颜色的设定 单元格的边框线的颜色可以通过 DataGridView.GridColor 属性来设定的。默认是 ControlDarkDark 。但是只有在 CellBorderStyle 被设定为 Single、SingleHorizontal、SingleVertical 的条件下才能改变其边框线的颜色。同样,ColumnHeadersBorderStyle 以及 RowHeadersBorderStyle 只有在被设定为 Single 时,才能改变颜色


转载请标明出处,原文地址:https://blog.csdn.net/weixin_41835916 如果觉得本文对您有帮助,请点击顶支持一下,您的支持是我写作最大的动力,谢谢。

C#--DataGridView(干货版)相关推荐

  1. Android音量设置流程干货版

    原址 1.     音量级数定义 在AudioService.Java中定义了最大音量MAX_STREAM_VOLUME,手机的设置property可以覆盖它. 2.     音量初始化 initSt ...

  2. 十六、覆盖索引(干货版)

    覆盖索引 一.题目 二.覆盖索引 一.题目 覆盖索引是什么 二.覆盖索引 如果一个索引包含(或者说覆盖)所有需要查询的字段的值,我们就称之为覆盖索引.我们知道在 InnoDB 存储引擎中,如果不是主键 ...

  3. 纯干货版阿里巴巴国际站入门攻略

    阿里巴巴国际站作为目前全球排名名列前茅的B2B电商平台,很多跨境电商卖家都很想入局.但是目前很多公司的国际站都没有专职运营的人员,只是靠外贸业务员操作,所以涉猎的都是比较浅的东西.今天龙哥就来讲讲如果 ...

  4. 保研资料 | 电子信息笔面试真题254题!(超全干货版)

    每一个专业都有其重要的学科知识点 掌握了常见笔面试真题 保研录取概率就能得到大大提升 作为计算机大类里一个较为基础和常见的专业 电子信息专业的保研笔面试 往年的真题具有非常重要的参考价值 也可以作为复 ...

  5. 小程序直播间页面路径怎么访问直播间_以小程序为例,在线教育产品的直播间有哪些功能设计?...

    直播兴起已经很久,在线教育玩直播的也有很多.本文作者从工作实践出发,结合案例分享了小程序直播间都做了哪些功能设计,为什么要这么设计,及对设计的复盘. 一.直播间都需要搭建哪些功能模块? 在收集了业务的 ...

  6. 一个追求高效的学习者手机里装有哪些APP?(转)

    转载:http://www.jianshu.com/p/f568c8d8b6bb 1.录音软件-Recordium 参加活动,如果不想错过活动现场的经常片段,速记又来不及,那就选择录音吧. 小六之前都 ...

  7. 优秀自律的人手机上都装了些什么app?看完你就懂了!

    你知道既优秀还很自律的人活着有多快乐吗,我不知道他们有多快乐,但我这只知道前行的路上沿途的风景一定很美.下面这些app是小编觉得能给大家带来一下高效而又自律的能力,希望我们能够做到轻松而又不失优雅的面 ...

  8. 三角形的几何公式大全_椰岛数学:超全高中数学公式记忆表(文末分享PDF)

    点击蓝字关注我们 椰岛数学,做自己喜欢的数学                椰 岛 数 学 期 待 您 的 关 注 距高考还有33天>>>>  阅读推荐甭找了!干货全在这儿1. ...

  9. Anaconda安装指南

    Anaconda集成了众多的python工具包,是目前为止比较好用的Python工具,本文详细介绍了Anaconda的安装过程(干货版,不废话,不装幽默). 第一步:下载Anaconda.登录Anac ...

最新文章

  1. vim 成“神“之路 (一)
  2. 掘地三尺,我挖出了这次线上事故的元凶:Java内存泄漏!
  3. getBytes等空指针异常
  4. python note 11 函数名的使用、闭包、迭代器
  5. 13个JavaScript单行式代码
  6. 低功耗蓝牙系统结构流程图
  7. 添加java环境变量_【安装 JDK】 配置环境变量
  8. python 发送邮件connect none_Python发送邮件功能示例【使用QQ邮箱】
  9. 吊炸天的 Kafka 图形化工具 Eagle,必须推荐给你!
  10. 基于‘BOSS直聘招聘信息’分析企业到底需要什么样的PHPer
  11. 实现一个基于主存的虚拟块设备驱动程序_存储器的层次结构:寄存器、高速缓存、主存、本地磁盘...
  12. 2018国庆雅礼D3T1
  13. ElementUI:设置table的背景透明、根据表格情况设置背景色、设置文字颜色、文字左右间距、表头、每一行高度
  14. 科学道德与学风-2021雨课堂答案-第4章
  15. html常见基础标签大汇总
  16. 招商银行SWIFT CODE/BIC/BRANCH CODE一览表
  17. 阿里云Android直播demo流程
  18. html地图周边搜索,高德地图API实现定位、地点搜索和周边搜索(H5/Vue/微信小程序)...
  19. 转 信安之路 CTF初识与深入
  20. css 真正意义上达到height:100%,自适应屏幕高度

热门文章

  1. VIM快捷键操作(复制/粘贴/删除/查找/跳转/撤销)
  2. 学习记录230202
  3. iPhone为什么不推出屏下指纹?
  4. Windows asar工具安装使用与破解StarUml
  5. JAVA微服务知识概述
  6. datetime.time格式的时间相加减运算。
  7. 你如何使用nodejs代码压缩文件夹
  8. Genymotion无法添加虚拟手机设备解决方式
  9. minecraft服务器查看玩家硬件配置,开我的世界服务器2W人的看的是CPU还是内存?...
  10. VBA将ppt保存为html,2013版ppt怎么保存为网页