当前位置: 首页 > ds >正文

20.3 使用技巧3

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的

20.3.5 禁止追加行与禁止删除行

通常情况下DataGridView最末一行是空白行,在此行单元格输入数据就可以追加新行。如果需要不允许用户自行输入增加数据,通过设置DataGridView的AllowUserToAddRows属性即可禁止或允许用户手动追加行。

同样,如果需要禁止或允许用户按下键盘上的Delete按键删除行,通过设置AllowUserToDeleteRows属性即可。

【例 20.8【项目:code20-008】拷贝单元格文本值。

        //禁止/允许用户手动添加新行

        private void button1_Click(object sender, EventArgs e)

        {

            dgv.AllowUserToAddRows = !dgv.AllowUserToAddRows;

        }

        //禁止/允许用户按下Delete按键删除行

        private void button2_Click(object sender, EventArgs e)

        {

            dgv.AllowUserToDeleteRows = !dgv.AllowUserToDeleteRows;

        }

20.3.7 运行时更改单元格类型

除了前面所讲到的在运行时增加某种类型的列,偶尔也会出现某个单元格需要修改为某种类型。

在第20.3.6节时,讲述了6种列类型,对应地,有6种单元格类型:DataGridViewButtonCell、DataGridViewCheckBoxCell、DataGridViewComboBoxCell、DataGridViewImageCell、DataGridViewLinkCell、DataGridViewTextBoxCell。它们继承于DataGridViewCell。

注意:DataGridViewCell下还有DataGridViewHeaderCell单元格类型,这是专门针对行表头单元格和列表头单元格的,不能将包含数据的单元格设置为此类型,否则会出错。

在运行时更改单元格类型常用的方法是直接定义某个类型单元格,然后将DataGridView中的某个单元格设置为刚才定义的变量。

【例 20.15【项目:code20-015】更改单元格类型。

        private void Form1_Load(object sender, EventArgs e)

        {

            //设置10行数据

            for(int i = 1;i<= 10;i++)

            {

                int rowIndex = dgv.Rows.Add();

                dgv.Rows[rowIndex].Cells[0].Value = i;

                dgv.Rows[rowIndex].Cells[1].Value = "第" + i + "小学";

            }

        }

        private void button1_Click(object sender, EventArgs e)

        {

            //将单元格(1,3)设置为图片类型

            DataGridViewImageCell newcellpic = new DataGridViewImageCell();

            dgv[1, 3] = newcellpic;

            newcellpic.Value = Image.FromFile("c:\\lessons\\g.png");

            //将单元格(1,4)设置为下拉框类型

            DataGridViewComboBoxCell newcellCombo = new DataGridViewComboBoxCell();

            dgv[1, 4] = newcellCombo;

            newcellCombo.Items.Clear();

            newcellCombo.Items.Add("第1中学");

            newcellCombo.Items.Add("第2中学");

            newcellCombo.Items.Add("第3中学");

            newcellCombo.Value = "第1中学";

        //将单元格(1,5)设置为超链接类型

            DataGridViewLinkCell newcellLink = new DataGridViewLinkCell();

            newcellLink.Value = "我的博客";

            newcellLink.LinkBehavior = LinkBehavior.HoverUnderline;

            newcellLink.TrackVisitedState = true;

            dgv[1, 5] = newcellLink;

            //将单元格(1,6)设置为按钮类型

            DataGridViewButtonCell newcellBtn = new DataGridViewButtonCell();

            dgv[1, 6] = newcellBtn;

            newcellBtn.Value = "按钮";

        }

        private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)

        {

            //判断是否是按钮

            if( dgv[e.ColumnIndex, e.RowIndex].GetType() == typeof(DataGridViewButtonCell))

                MessageBox.Show("点击了第" + (e.RowIndex + 1) + "行的按钮");

        }

运行结果如下图所示:

图20-21 修改单元格类型

学习更多vb.net知识,请参看vb.net 教程 目录

学习更多C#知识,请参看C#教程 目录

http://www.xdnf.cn/news/38.html

相关文章:

  • Openfein实现远程调用的方法(实操)
  • 【音视频开发】第五章 FFmpeg基础
  • 最新Spring Security实战教程(十一)CSRF攻防实战 - 从原理到防护的最佳实践
  • 逻辑回归 (Logistic Regression)
  • 山东大学软件学院创新项目实训开发日志(18)之对话自动生成标题设为用户第一次对话发的文字
  • 第五章 SQLite数据库:3、SQLite 常用语法及使用案例
  • requestAnimationFrame 深度理解
  • AI在多Agent协同领域的核心概念、技术方法、应用场景及挑战 的详细解析
  • 【OSCP-vulnhub】GoldenEye
  • 【秣厉科技】LabVIEW工具包——OpenCV 教程(20):拾遗 - imgproc 基础操作(下)
  • Linux 防火墙( iptables )
  • 大数据调度组件
  • 10.(vue3.x+vite)div实现tooltip功能(css实现)
  • 华为仓颉编程语言深度解析
  • InfiniBand与RoCEv2负载均衡机制的技术梳理与优化实践
  • 服务(service)管理
  • 探寻Gson解析遇到不存在键值时引发的Kotlin的空指针异常的原因
  • 2025第十七届“华中杯”大学生数学建模挑战赛题目B 题 校园共享单车的调度与维护问题完整思路 模型 代码 结果分享
  • 从零开始 保姆级教程 Ubuntu20.04系统安装MySQL8、服务器配置MySQL主从复制、本地navicat远程连接服务器数据库
  • HTML:表格数据展示区
  • 《理解 Java 泛型中的通配符:extends 与 super 的使用场景》
  • 趣味编程之分布式系统:负载均衡的“雨露均沾“艺术
  • Python数据可视化
  • 1.Axum 与 Tokio:异步编程的完美结合
  • ubuntu docker 创建镜像 报错 dial tcp xxxx read udp xxxx i/o timeout 还有 Forbidden
  • gRPC 介绍及在嵌入式 Linux 下的成功编译及使用详解
  • 网络规划设计之广域网结构设计,6种架构模式对比
  • 观察者模式:从博客订阅到消息队列的解耦实践
  • 01、单片机简介
  • TAS(Thin-Agent服务)的先决条件与安装指南