首页 > 其他分享 >Winform DataGridView空间绘制单元格内容

Winform DataGridView空间绘制单元格内容

时间:2023-06-28 16:57:04浏览次数:33  
标签:case CellValueNeeded 单元格 Value DataGridView break ProcessStepsRecordGrid Winform

在项目中遇到一个需求,需将特定单元格内data显示为修饰后的内容,但不改变原始值(例如将data内的时间单位为ms,单元格需显示ms或者根据值显示特定名称)

CellValueNeeded,该事件在控件刷新,需要为单元格填充数据时发生,其参数e返回当前单元格的行和列,根据行和列,获取需要的值,赋给e的Value属性。触发前值条件:1.将VirtualMode属性要设置为true 2.datagridview的列是非绑定列(即不能设置datagridview的DataPropertyName属性),并且这个列必须可见

1.订阅事件 base.CellValueNeeded += new System.Windows.Forms.DataGridViewCellValueEventHandler(this.ProcessStepsRecordGrid_CellValueNeeded);

2.重写ProcessStepsRecordGrid_CellValueNeeded方法

protected virtual void ProcessStepsRecordGrid_CellValueNeeded(object sender, System.Windows.Forms.DataGridViewCellValueEventArgs e)
{ foreach (var v in data) { //将时间显示为s为单位 if (v.Title== time) { e.Value = (Double.Parse(v.value) / 1000).ToString(); }
//值类型的state显示为特定名称 else if (v.Title== state) { switch (v.Value) { case 1: e.Value = "state1"; break; case 2: e.Value = "state2"; break; case 3: e.Value = "state3"; break; }
//正常显示 else e.Value = v.Value; } }

 

标签:case,CellValueNeeded,单元格,Value,DataGridView,break,ProcessStepsRecordGrid,Winform
From: https://www.cnblogs.com/yuewei-bravo/p/17511836.html

相关文章

  • 合并行的单元格 EXTJS
    在ExtJS4中,如何合并行的单元格,已经选取的时候只能选择某一列,期望的效果如下:在ExtJS中,合并表头的列有现成方案,但是合并行单元格不是extjs的现有功能,这个需要底层扩展,也就是使用table的跨行实现。而ExtJS7以及新版本和ExtJS4在最底层的Grid组成上又有差别,所以不同......
  • winform控件开发一之复合控件开发(6)切换按钮(Switch)
    使用自定义控件,实现一个切换按钮,显示效果如下: 通过双击实现切换操作实现代码如下:usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Windows.Forms;namespace各种C_sharp功能测试{publicpartialclassSwitch:Control{public......
  • C# Winform通用开发框架,支持多语言,多数据库,自动更新,模块化
    C#Winform通用开发框架,支持多语言,多数据库,自动更新,模块化,可用其开发任意CS端系统,非常适合需要快速搭建项目的团队或个人使用。原创文章,转载请说明出处,资料来源:http://imgcs.cn/5c/661496079150.html......
  • 2023-06-26:在大小为 n x n 的网格 grid 上,每个单元格都有一盏灯,最初灯都处于 关闭 状
    2023-06-26:在大小为nxn的网格grid上,每个单元格都有一盏灯,最初灯都处于关闭状态给你一个由灯的位置组成的二维数组lamps其中lamps[i]=[rowi,coli]表示打开位于grid[rowi][coli]的灯即便同一盏灯可能在lamps中多次列出,不会影响这盏灯处于打开状态当一盏灯处于......
  • 界面组件DevExpress WinForm v23.1新版亮点 - 皮肤矢量图标全新升级
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForm 控件日前正式发布了今年第一......
  • 记WinForm DataGridView 表格显示的不同风格
    第一种风格:1///<summary>2///第一种样式3///</summary>4publicvoidDgvStyle1(DataGridViewdgv)5{6//奇数行的背景色7dgv.AlternatingRowsDefaultCellStyle.BackColor=S......
  • 记WinForm DataGridView 新增行号列
    下面是 DataGridView 新增行号封装的通用方法:1///<summary>2///给DataGridView添加行号3///</summary>4///<paramname="dgv"></param>5///<paramname="e"></param>......
  • [C#] winform窗体分布类实现
     为Form1窗体添加一个partial属性的分布类,需要以下几步:1.使用VisualStudio创建你的新工程,包含窗体Form12.创建一个新文件,命名成这样的格式:Form1.Behind.cs3.新class编辑为partial属性5.保存全部并关闭VisualStudio6.使用记事本打开[.csproj]文件7.寻找以下字段:[cod......
  • winform控件开发一之复合控件开发(3)调节阀(regulate valve)
    使用自定义控件,实现一个调节阀,显示效果如下: 实现代码如下:usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Windows.Forms;namespace各种C_sharp功能测试{publicpartialclassRegulateValve:Control{publicRegulateValve()......
  • winform控件开发一之复合控件开发(2)开关阀(shut-off valve)
    实现一个开关阀控件,使用自定义控件,显示效果如下所示:其中,上方为线圈状态,下方为阀体状态,如下所示: 当线圈给电时,线圈为绿色;当线圈失电时,线圈为红色;代码中用value1控制当阀门开到位时,阀体状态显示为绿色;当阀门关到位时,阀体状态显示为红色;代码中用value2控制 代码如下:usingS......