DataGridView用法合集(9):添加控件

news2024/12/24 9:31:17

目录

45. DataGridView列中显示选择框CheckBox

46. DataGridView中显示下拉框ComboBox

47. DataGridView单击打开下拉框

48. DataGridView中显示按钮

49. DataGridView中显示链接

50. DataGridView中显示图像

45. DataGridView列中显示选择框CheckBox

[VB.NET]

'添加CheckBox列

Dim column As New DataGridViewCheckBoxColumn

DataGridView1.Columns.Add(column)

[C#]

//添加CheckBox列

DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();

DataGridView1.Columns.Add(column);

中间状态在内的三种状态表示

[VB.NET]

'能够显示3种检查状态

Dim column As DataGridViewCheckBoxColumn = CType(DataGridView1.Columns(0), DataGridViewCheckBoxColumn)

column.ThreeState = True

[C#]

DataGridViewCheckBoxColumn column =(DataGridViewCheckBoxColumn)DataGridView1.Columns[0];

column.ThreeState = true;


46. DataGridView中显示下拉框ComboBox

[VB.NET]

Dim column As New DataGridViewComboBoxColumn()
'在ComboBox的列表中指定要显示的项目
column.Items.Add("日曜日")
column.Items.Add("月曜日")
column.Items.Add("火曜日")
column.Items.Add("水曜日")
column.Items.Add("木曜日")
column.Items.Add("金曜日")
column.Items.Add("土曜日")
'"Week"显示绑定在列中的数据
column.DataPropertyName = "Week"
DataGridView1.Columns.Insert(DataGridView1.Columns("Week").Index, column)
DataGridView1.Columns.Remove("Week")
column.Name = "Week"

[C#]

DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
//显示绑定在列中的数据
column.Items.Add("日曜日");
column.Items.Add("月曜日");
column.Items.Add("火曜日");
column.Items.Add("水曜日");
column.Items.Add("木曜日");
column.Items.Add("金曜日");
column.Items.Add("土曜日");
//"Week"显示绑定在列中的数据
column.DataPropertyName = "Week";
DataGridView1.Columns.Insert(DataGridView1.Columns["Week"].Index, column);
DataGridView1.Columns.Remove("Week");
column.Name = "Week";

通过列Data绑定设置ComboBox

[VB.NET]

Dim weekTable As New DataTable("WeekTable")
weekTable.Columns.Add("Display", GetType(String))
weekTable.Columns.Add("Value", GetType(Integer))
weekTable.Rows.Add("日曜日", 0)
weekTable.Rows.Add("月曜日", 1)
weekTable.Rows.Add("火曜日", 2)
weekTable.Rows.Add("水曜日", 3)
weekTable.Rows.Add("木曜日", 4)
weekTable.Rows.Add("金曜日", 5)
weekTable.Rows.Add("土曜日", 6)
Dim column As New DataGridViewComboBoxColumn()
column.DataPropertyName = "Week"
'DataGridViewComboBoxColumnのDataSourceを設定
column.DataSource = weekTable
column.ValueMember = "Value"
column.DisplayMember = "Display"
DataGridView1.Columns.Add(column)

[C#]

DataTable weekTable = new DataTable("WeekTable");
weekTable.Columns.Add("Display", typeof(string));
weekTable.Columns.Add("Value", typeof(int));
weekTable.Rows.Add("日曜日", 0);
weekTable.Rows.Add("月曜日", 1);
weekTable.Rows.Add("火曜日", 2);
weekTable.Rows.Add("水曜日", 3);
weekTable.Rows.Add("木曜日", 4);
weekTable.Rows.Add("金曜日", 5);
weekTable.Rows.Add("土曜日", 6);
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
column.DataPropertyName = "Week";
column.DataSource = weekTable;
column.ValueMember = "Value";
column.DisplayMember = "Display";
DataGridView1.Columns.Add(column);

默认状态下,所有下拉框都显示;DisplayStyleForCurrentCellOnly=True的状态下,当前的单元格显示下拉框,其余不显示;还有一种就是光标移动时强调显示。如下图左中右三列。

47. DataGridView单击打开下拉框

通常情况下要打开下拉框需要点击目标单元格三次,第一次选中单元格,第二次进入编辑状态,第三次才能打开下拉框

[VB.NET]

Private Sub DataGridView1_CellEnter(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles DataGridView1.CellEnter
    Dim dgv As DataGridView = CType(sender, DataGridView)
    If dgv.Columns(e.ColumnIndex).Name = "ComboBox" AndAlso _
        TypeOf dgv.Columns(e.ColumnIndex) Is DataGridViewComboBoxColumn Then
        SendKeys.Send("{F4}")
    End If
End Sub

[C#]

private void DataGridView1_CellEnter(object sender,
    DataGridViewCellEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;
    if (dgv.Columns[e.ColumnIndex].Name == "ComboBox" &&
       dgv.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn)
    {
        SendKeys.Send("{F4}");
    }
}

48. DataGridView中显示按钮

[VB.NET]

Dim column As New DataGridViewButtonColumn()
column.Name = "Button"
column.UseColumnTextForButtonValue = True
column.Text = "详细阅读"
DataGridView1.Columns.Add(column)

[C#]

DataGridViewButtonColumn column = new DataGridViewButtonColumn();
column.Name = "Button";
column.UseColumnTextForButtonValue = true;
column.Text = "详细阅读";
DataGridView1.Columns.Add(column);

按钮按下事件取得

[VB.NET]

Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles DataGridView1.CellContentClick
    Dim dgv As DataGridView = CType(sender, DataGridView)
    If dgv.Columns(e.ColumnIndex).Name = "Button" Then
        MessageBox.Show((e.RowIndex.ToString() + _
            "行按钮被点击了。"))
    End If
End Sub

[C#]

private void DataGridView1_CellContentClick(object sender,
    DataGridViewCellEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;
    if (dgv.Columns[e.ColumnIndex].Name == "Button")
    {
        MessageBox.Show(e.RowIndex.ToString() +
            "行按钮被点击了。");
    }
}

49. DataGridView中显示链接

[VB.NET]

Dim column As New DataGridViewLinkColumn()

column.Name = "Link"

column.UseColumnTextForLinkValue = True

column.Text = "详细阅读"

column.LinkBehavior = LinkBehavior.HoverUnderline

column.TrackVisitedState = True

DataGridView1.Columns.Add(column)

[C#]

DataGridViewLinkColumn column = new DataGridViewLinkColumn();

column.Name = "Link";

column.UseColumnTextForLinkValue = true;

column.Text = "详细阅读";

column.LinkBehavior = LinkBehavior.HoverUnderline;

column.TrackVisitedState = true;

DataGridView1.Columns.Add(column);

链接按下事件取得

[VB.NET]

Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles DataGridView1.CellContentClick
    Dim dgv As DataGridView = CType(sender, DataGridView)
    If dgv.Columns(e.ColumnIndex).Name = "Link" Then
        MessageBox.Show((e.RowIndex.ToString() + _
            "行按钮被点击了。"))
        Dim cell As DataGridViewLinkCell = _
            CType(dgv(e.ColumnIndex, e.RowIndex), DataGridViewLinkCell)
        cell.LinkVisited = True
    End If
End Sub

[C#]

private void DataGridView1_CellContentClick(object sender,
    DataGridViewCellEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;
    if (dgv.Columns[e.ColumnIndex].Name == "Link")
    {
        MessageBox.Show(e.RowIndex.ToString() +
            "行按钮被点击了。");
        DataGridViewLinkCell cell =
            (DataGridViewLinkCell)dgv[e.ColumnIndex, e.RowIndex];
        cell.LinkVisited = true;
    }
}

50. DataGridView中显示图像

[VB.NET]

Dim column As New DataGridViewImageColumn()

column.Name = "Image"

column.ValuesAreIcons = False

column.Image = New Bitmap("C:/null.gif")

column.ImageLayout = DataGridViewImageCellLayout.Zoom

column.Description = "图像"

DataGridView1.Columns.Add(column)

DataGridView1("Image", 0).Value = New Bitmap("C:/top.gif") '

[C#]

DataGridViewImageColumn column = new DataGridViewImageColumn();

column.Name = "Image";

column.ValuesAreIcons = false;

column.Image = new Bitmap("C://null.gif");

column.ImageLayout = DataGridViewImageCellLayout.Zoom;

column.Description = "图像";

DataGridView1.Columns.Add(column);

DataGridView1["Image", 0].Value = new Bitmap("C://top.gif");

图片属性单元格未设值时红差不显示的设定

[VB.NET]

Dim imageColumn As DataGridViewImageColumn = _

    CType(DataGridView1.Columns("Image"), DataGridViewImageColumn)

imageColumn.DefaultCellStyle.NullValue = Nothing

[C#]

DataGridViewImageColumn imageColumn =

    (DataGridViewImageColumn)DataGridView1.Columns["Image"];

imageColumn.DefaultCellStyle.NullValue = null;

 欢迎微信技术交流:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2046336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL5.7数据库---入门教程(小白教程)

一、MySQL安装 本文以MySQL5.7安装为例。在设置完root密码和添加一个用户后,一路默认。 1、 2、通过点击红圈里的箭头选择对应的版本。 3、 4、端口(Port)一般默认不需要更改。 5、 二、配置环境变量 配置环境变量可以方便在win系统中cmd…

HarmonyOS 端云一体化 -- 项目初始化

HarmonyOS 端云一体化 – 项目初始化 端云一体化官方简介 本文档基于 api9 编写本来我想用最新版的api搞,但是在 AppFallery Connect 上创建项目的时候有bug,没没办法成功创建应用,无奈只能切换到 api9 版本。 1.新建项目 1.1 登录华为官…

突破大模型极限!GLM-4-long百万长文本模型上线bigmodel.cn

最近业务上多了长文本的需求,因为要在prompt里面塞进比较多的rag内容,以供决策,且这些召回的内容,都有可能用到。这非常考验大模型的长文本能力,技术选型上都要着重考察这部分。 正巧,上次清影试用后&…

游戏开放式新手引导框架设计

强制性引导:只能点某个按钮 优:程序简单 缺: 玩家体验差 开放式引导:不强制点 优:玩家体验好 缺: 程序复杂 需求分析: 1.开放式引导,引导是到达某个条件后进行一系列行为&#xff08…

水星Mercury X1轮式人形机器人结合openc算法&STag标记码视觉系统实现精确抓取!

本案例展示了如何利用视觉系统提升机械臂的抓取精度,成功实现了人形机器人的双臂抓取不在局限于单臂抓取。 引言 如今市面上已经有了许多不同类型的人形机器人,涵盖了服务行业和医疗行业等各个领域。这些机器人以其智能化和自动化的特性逐渐融入我们的日…

比例PQ阀信号放大器的选择

比例PQ阀信号放大器的选择时,需要考虑一系列的因素以确保放大器能精确匹配比例阀的需求,保障液压系统的高效和稳定运行。根据所控制的比例阀类型,选择与之兼容的放大器型号。如各厂商不带反馈比例方向阀、比例溢流阀、比例减压阀等均可用BEUE…

RabbitMQ 集群部署方案

RabbitMQ 一、安装 RabbitMQ二、更改配置文件三、配置集群四、测试 环境准备:三台服务器,系统是 CentOS7IP地址分别是: rabbitmq1:192.168.152.71rabbitmq2:192.168.152.72rabbitmq3:192.168.152.73 一、…

【一键操作】【包运行及安装教程】2024数学建模国赛(高教社杯)Latex论文模板

数学建模国赛创办于1992年,每年一届,是首批列入“高校学科竞赛排行榜”的19项竞赛之一。 作为一个重量级的赛事,一次参赛将众生受益,所以相信很多同学都在为了国奖而努力,所以针对大家的参赛论文,我们之前分…

LVS集群的NAT模式和DR模式

LVS简介 LVS(Linux Virtual Server)是一个用于负载均衡的开源软件项目,旨在通过集群技术实现高性能、高可用的服务器系统。它运行在Linux操作系统上,并且可以利用内核级的资源来提高性能和稳定性。 LVS 体系结构 LVS架构 主要…

Redis远程字典服务器(7)—— set类型详解

目录 一,基本情况 二,常用命令 2.1 sadd 2.2 smembers,sismember 2.3 spop,srandmember 2.3 smove,srem 2.4 sinter,sinterstore求交集 2.5 sunion,sunionstore求并集 2.6 sdiff&#…

Mysql视图整理

理论 初级语法及操作 操作基于navicat视图化,其他管理工具基本类似 参考即可 这里附上官网免费版下载链接:Navicat Premium Lite | 简单的数据库管理和开发工具 首先:选择选中数据库--》最上面的视图--》新建视图--》 我们可以看到这里&a…

three.js 几何体、材质和网格模型

场景Scene、相机Camera、渲染器Renderer初始化完成之后,可以向场景中添加一个简单的模型进行展示。在此之前需要了解三个概念:几何体、材质、网格模型。 几何体:表示物体的几何形状。材质:表示物体的外观效果。网格模型&#xff…

springboot的学习(一):springboot的基础

简介 springboot的基础的知识点的学习总结 springboot 设计目的是为了简化spring应用的初始搭建和开发过程。 简单例子 new project,一般用这个阿里的地址:https://start.aliyun.com/ 点击next,选择jdk版本 点击next,选择模…

88.SAPUI5 Model Binding的问题-在view更改数据,model却不变

目录 1.背景 2.sap.ui.model.BindingMode sap.ui.model.BindingMode.OneWay sap.ui.model.BindingMode.TwoWay 3.oModel.setDefaultBindingMode 方法说明 execOneWay方法 execTwoWay方法 1.背景 在做一个UI5项目,后台读取sap.ui.model.Model后,把…

Vuex 深度解析 | 面试常问问题案例

Vuex 深度解析 | 面试常问问题案例 Vuex 是 Vue.js 应用程序的状态管理模式和库。它为 Vue.js 应用程序提供了一个集中存储所有组件的共享状态,并以相应的规则保证状态以一种可预测的方式发生变化。接下来,我们将深入探讨 Vuex 的核心概念、使用方式、AP…

项目管理高效秘诀:优选软件大公开

国内外主流的 10 款项目管理系统对比:PingCode、Worktile、Asana、Trello、ClickUp、Zoho Projects、Hive、Teambition、飞书、Tapd。 在寻找完美的项目管理工具时,许多团队都面临一个共同的问题:除了已知的Worktile之外,还有哪些…

“从创建到管理,Linux进程编程是你掌握系统资源的金钥匙!“#Linux系统编程之进程【下】

"从创建到管理,Linux进程编程是你掌握系统资源的金钥匙!"#Linux系统编程之进程【下】 前言预备知识一、 父进程等待子进程退出(一)1.1 为啥要等待子进程退出1.2 父进程等待子进程退出并收集退出状态1.3 编程验证僵尸进程…

【47 Pandas+Pyecharts | 杭州二手房数据分析可视化】

文章目录 🏳️‍🌈 1. 导入模块🏳️‍🌈 2. Pandas数据处理2.1 读取数据2.2 过滤数据2.3 行政区处理2.4 地址处理2.5 房屋信息处理2.6 面积处理2.7 楼层处理2.8 年份处理2.9 房价处理2.10 删除不用的列2.11 数据类型转换2.12 查看…

【数学建模】Matlab 编程

MATLAB是美国MathWorks公司自20世纪80年代中期推出的数学软件,具有优秀的数值计算能力和卓越的数据可视化。由于Maltab编程方便,有大量内部函数和工具箱可以使用,作图也 十分方便,因此在数学实验和数学建模竞赛中,我们…

揭秘紧固件分销网络:如何成为结构安全和社会进步的关键支点?

全球产品分销的历史源远流长,早在国际贸易初期就已形成。在紧固件行业中,随着各行业对紧固件需求的不断增长,市场呈现出积极的发展趋势。紧固件在结构、机械、设备及其他众多组件中扮演着至关重要的角色,确保了整个系统的高效运行…