概述

在ComponentOne Enterprise .NET控件集中,FlexGrid表格控件是用户使用频率最高的控件之一。它是一个功能强大的数据管理工具,轻盈且灵动,以分层的形式展示数据(数据呈现更加直观)。

FlexGrid 简介

FlexGrid 是业界推崇的 .NET 数据表格,集成于 ComponentOne Enterprise .NET控件集中,可灵活、轻量、快速用于 WPF、WinForm、UWP、MVC、Silverlight、ActiveX平台。

分层数据展示

在分层数据展示中,FlexGrid 可以使用Node.Checked属性在任何节点行之前显示CheckBox。 然后,父节点之前的这些复选框可用于添加功能,例如启用/禁用或选择/取消选择树中的所有子节点。

假设用户想要利用RadioButton来代替这些复选框,并且,需要在对子节点进行“选择/取消”按钮操作时,同时影响父节点状态的功能,利用 FlexGrid 数该如何实现?

是否有可能在树中显示单选按钮?

答案是肯定的。 诀窍是使用 FlexGrid网格中子节点的Node.Image属性显示RadioButton图像。

Node child = c1FlexGrid1.Rows.AddNode(1);
child.Image = Image.FromFile("../../Resources/Img_Unchecked.png");

我们刚刚展示了效果图。 现在,我们需要在改变“选中/取消”父节点时同时影响子节点状态。 为了满足这一要求,FlexGrid 网格的CellChecked事件将是一个不错的选择。当用户改变父节点当前状态时,它会被触发。

private void C1FlexGrid1_CellChecked(object sender, RowColEventArgs e) { //Get the checked/unchecked node row Node node = c1FlexGrid1.Rows[e.Row].Node; //If node row is itself a parent if (node.Parent == null) { //If checked if (node.Checked == CheckEnum.Checked) { //For each child row foreach(Node childNode in node.Nodes) { //Enabled childNode.Row.AllowEditing = true; childNode.Row.StyleNew.BackColor = Color.White; } } //If unchecked else if(node.Checked == CheckEnum.Unchecked) { //For each child row foreach (Node childNode in node.Nodes) { //Disabled childNode.Row.AllowEditing = false; childNode.Row.StyleNew.BackColor = Color.LightGray; } } } } 

接下来,如果通过网格的MouseDown事件中的代码启用了子节点,它将处理单选按钮的切换。

private void C1FlexGrid1_MouseDown(object sender, MouseEventArgs e) { HitTestInfo hti = c1FlexGrid1.HitTest(e.Location); //Get node row corresponding to clicked row Node node = c1FlexGrid1.Rows[hti.Row].Node; Rectangle cellBounds = c1FlexGrid1.GetCellRect(hti.Row, hti.Column); //If it is a child row if(node.Parent != null) { //Only for RadioButton if (hti.Column == 1 && node.Level == 1 && (hti.X >= cellBounds.X + 33) && (hti.X <= cellBounds.X + 43)) { //Check if enabled if(node.Row.AllowEditing) { //Currently unchecked if (Convert.ToInt32(node.Key) == 0) { //Checked state node.Image = Image.FromFile("../../Resources/Img_Checked.png"); node.Key = 1; } //Currently checked else { //Unchecked state node.Image = Image.FromFile("../../Resources/Img_Unchecked.png"); node.Key = 0; } } } } } 

在上面的代码中,我们在Node.Key属性中存储二进制状态:0表示未检查状态,1表示已检查状态。

以上就是关于:如何在ComponentOne FlexGrid树中显示RadioButton的具体做法。与此同时,如果需要显示RadioButton以外的控件,ComponentOne 也同样支持!


ComponentOne Enterprise | 下载试用

ComponentOne是一款专注于企业应用高性能开发的 .NET 全功能控件套包,包含300余种控件,支持7大平台,涵盖7大功能模块。较于市面上其他同类产品,ComponentOne更加轻盈,功能更加强大,20多年的开发经验,将为您的应用系统带来更为安全的使用体验。纯中文操作界面,一对一技术支持,厂商级的技术服务,共同造就了这款国际顶级控件套包。

您对ComponentOne 产品的任何技术问题,都有技术支持工程师提供1对1专业解答,点击此处即可发帖提问>> 技术支持论坛

转载于:https://www.cnblogs.com/C1SupportTeam/p/10141826.html

【Visual Studio 扩展工具】如何在ComponentOneFlexGrid树中显示RadioButton相关推荐

  1. Visual Studio扩展工具添加与卸载

    简介:vs 作为主流的开发工具之一,其强大的功能无可厚非,但日益增加的需求就使得vs的扩展工具成为优秀dev所必备的利器之一. Visual Studio扩展工具添加 Visual Studio扩展工 ...

  2. 直接拿来用!Visual Studio 扩展工具利用 AI 强化你的代码

    开发者如何利用人工智能强化代码?现在,Visual Studio IntelliCode 就能简单实现!下面来详细了解下具体如何操作. 作者 | Dirk Strauss 译者 | 弯月,责编 | 郭 ...

  3. 【Visual Studio 扩展工具】使用 ComponentOne迷你图控件,进行可视化数据趋势分析...

    概述 迷你图 -- Sparklines是迷你的轻量级图表,有助于快速可视化数据. 它们是由数据可视化传奇人物Edward Tufte发明的,他将其描述为"数据密集,设计简单,字节大小的图形 ...

  4. 【Visual Studio 扩展工具】使用 ComponentOne迷你图控件,进行可视化数据趋势分析... 1

    概述 迷你图 -- Sparklines是迷你的轻量级图表,有助于快速可视化数据. 它们是由数据可视化传奇人物Edward Tufte发明的,他将其描述为"数据密集,设计简单,字节大小的图形 ...

  5. 【Visual Studio 扩展工具】使用ComponentOne中的GroupDefinition和SortDefinition属性保存和还原布局...

    2019独角兽企业重金招聘Python工程师标准>>> 概述 在此前的ComponentOne中,我们为C1FlexGrid(最快,最灵活的.Net数据网格控件)添加了一个非常强大的 ...

  6. Visual Studio 扩展包(.vsix)制作

    前言:上篇介绍了 Visual Studio扩展工具添加与卸载,本编要介绍的是Visual Studio 扩展包(.vsix)的制作. 方法: ①.下载并安装Visual Studio 2010 SD ...

  7. visual studio开发工具的C#主流控件属性一览表

    visual studio开发工具的C#主流控件属性一览表 visual studio开发工具的C#主流控件属性一览表 详细的介绍了各控制属性的详细中文介绍 C#控件及常用设计整理 1.窗体  1.常 ...

  8. 一起谈.NET技术,用NuGet掌管你的Visual Studio扩展

    如果你使用Visual Studio 2010,那么 NuGet 可以使你的生活更加美好.当你项目里要引用到的一些库时候,比如JQuery 库或者 NHibernate, NUnit, log4net ...

  9. 最棒的Visual Studio扩展

    isual Studio是微软公司推出的开发环境,Visual Studio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务.智能设备应用程序和Offic ...

最新文章

  1. Arm架构CPU服务器
  2. excel 用VBA将所有单元格内容全部转换为文本
  3. node实战学习纪录
  4. 设计模式——策略模式(C++实现)
  5. sqlmap报错注入
  6. 【操作系统】进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践
  7. 那么多GAN哪个好?谷歌大脑泼来冷水:都和原版差不多 | 论文
  8. js将数字转为千分位/清除千分位
  9. hyper-v 中 安装 Centos 7.0 设置网络 教程
  10. 论文阅读笔记——拥塞控制算法PCC
  11. ScmTools(CAD自动标注插件)v2.0官方版
  12. echarts 多图联动
  13. 5个步骤搞定protoc环境安装
  14. oracle切割字符串函数,Oracle字符串分割函数
  15. linux系统中怎么复制粘贴快捷键设置,复制粘贴的快捷键是什么 复制粘贴的快捷键介绍【步骤】...
  16. android桌面插件每秒刷新
  17. 我的开源项目:C++ Qt高仿QQ影音视频播放器
  18. java三维动画_基于Java3D的交互式三维动画的研究
  19. 【Unity 优化篇】 | 优化专栏《导航帖》,全面学习Unity优化技巧,让我们的Unity技术上升一个档次
  20. 独角兽公司ucloud照片Linux存储/文件存储工程师

热门文章

  1. NHibernate从入门到精通系列(7)——多对一关联映射
  2. 微软SCRUM 1.0流程模板在中文版TFS2010上无法创建项目的解决办法(续)
  3. 编程实现路由算法 实验报告_lt;中国通信专刊gt; EARS:用于软件定义网络中自动路由的智能驱动体验网络架构...
  4. 计算机设计原则,CISSP备考系列之计算机设计原则[10-39]
  5. dblink oracle mysql,Oracle dblink的使用
  6. 计算机组装人员的职责,自控设备组装员
  7. C语言 数据类型(就做个笔记总结)
  8. matlab preloadfcn,运行xilinx blockset中的错误包含在matlab中
  9. java vagrant_vagrant 做一个java web开发环境
  10. kvm上添加万兆网卡_部署kvm(二)