C1 FlexGrid控件 Editor 冲突问题
当给C1FlexGrid控件加入 Checkbox后,添加新行时对新行的Editor 赋新控件时,会冲突如下图:

下面我们借助BeforeRowColChange 事件来解决这个问题:
我理解的此事件是当前鼠标选择中单元格发生改变时触发。(可能会涉及到多选择单元格的情况 ,因本需要不涉及上问题,所以此文章只做参考)
首先我先说一下思路
1、创建一个Dictionary<int, Control> 的对象 , int: 记录行号, Control:记录当前行把拥有的Editor。
2、当C1FlexGrid初始加载完成后,循环把 C1FlexGrid 中每行的Editor 缓存到第1步创建的对象中。(因为后面我会清楚掉C1FlexGrid的行Editor,我们会用此缓存把数据在还原回去)
3、BeforeRowColChange 事件中判断是否清楚清C1FlexGrid的行Editor代码如下 。
创建缓存对象:
private Dictionary<int, Control> dic = new Dictionary<int, Control>(); //缓存FlexGrid中的Editor控件 用于解决CheckBox不冲突问题
加载数据完成后,记录缓存
Column cl = c1FlexGrid1.Cols.Add();
cl.Caption = "多选";
cl.Name = "duoxuan";
cl.DataType = typeof(Boolean);
cl.AllowEditing = true;
//CheckBox ccc = new CheckBox();
//cl.Editor = ccc; ComboBox cb = new ComboBox();
cb.Items.Add("");
cb.Items.Add(""); cl = c1FlexGrid1.Cols.Add();
cl.Caption = "时间";
cl.Name = "shijian";
cl.AllowEditing = true;
//cl.Editor = cb; DateTimePicker dtp = new DateTimePicker();
Row row = c1FlexGrid1.Rows.Add();
row[] = "true";
row.Editor = dtp;
row = c1FlexGrid1.Rows.Add();
row[] = "true";
row.Editor = cb; //缓存数据到 缓存对象中
foreach (Row r in c1FlexGrid1.Rows)
{
dic.Add(r.Index, r.Editor);
}
BeforeRowColChange事件
private void c1FlexGrid1_BeforeRowColChange(object sender, RangeEventArgs e)
{
if (e.NewRange.c1 == )
{
c1FlexGrid1.Rows[e.NewRange.TopRow].Editor = null;
}
if (e.NewRange.c1 == )
{
KeyValuePair<int, Control> row = dic.Where(o => o.Key == e.NewRange.TopRow).FirstOrDefault();
if (!row.Equals(null))
{
c1FlexGrid1.Rows[e.NewRange.TopRow].Editor = row.Value;
}
}
}
这样就可以解决了,如果还有什么疑问,可以留言。
C1 FlexGrid控件 Editor 冲突问题的更多相关文章
- WPF背景透明内嵌WebBrowser不显示问题,即AllowsTransparency = true 和 Webbrowser 等控件显示冲突
首先感谢两位先导者: 1. 解决 WPF AllowsTransparency = true 和 Webbrowser 等控件显示冲突 原文地址:https://www.cnblogs.com/zhi ...
- kendo ui 富文本编辑控件 Editor 实现本地上传图片,并显示
富文本编辑的组件有很多,大名鼎鼎的KENDO UI中自然也有,但是默认功能中,只能包含网络图片, 而如果要实现本地上传图片,KENDO UI也提供了相应的功能,但必须实现KENDO规定的多个接口, 而 ...
- 解决 WPF AllowsTransparency = true 和 Webbrowser 等控件显示冲突
代码: public class FormsWebBrowser { Window _owner; FrameworkElement _placementTarget; Form _form; AxA ...
- ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法
fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ...
- refreshLayout 和 滑动控件的冲突解决
listView.setOnScrollListener(new OnScrollListener() { @Override public void onScrollSt ...
- 点击按钮,生成一组一组combobox和slider时,避免控件Id相同,导致控件冲突的方法
如下效果图,点击一次添加按钮,动态生成一组combobox和slider.由于easyUI的下拉框和滑块使用相同的控件id,通过JS生成控件,如果两个id一样就会造成冲突,例如点击第一组的下拉框,第二 ...
- C1控件的破解步骤
最近接触了一个系统中的打印和报表控件用到了C1控件,控件在以前就注册了的,可是在这次修改了系统后,系统却提示C1的控件没有注册. 怎么回事呢?我们这次并没有修改报表,而且也没有和C1控件相关的改动.怎 ...
- vue和bootstrap的select控件貌似有冲突?
貌似vue和bootstrap的select控件会冲突,因为bootstrap的select控件会将option替换为<a>标签,这样就会导致vue渲染失败.(这个问题让我整了一个上午,最 ...
- 【Visual Studio 扩展工具】使用 ComponentOne迷你图控件,进行可视化数据趋势分析
概述 迷你图 —— Sparklines是迷你的轻量级图表,有助于快速可视化数据. 它们是由数据可视化传奇人物Edward Tufte发明的,他将其描述为“数据密集,设计简单,字节大小的图形.”虽然迷 ...
随机推荐
- 【笔记】Loadrunner添加OS类型为Windows的服务器(Win7)
最近在学习Loadrunner,看到“监控Windows资源”,决定小试一把,由于没有找到合适的镜像,暂时没有搞好Windows的虚拟机,so 先用自己小试牛刀了只有,不过这样子好像难度锐减也~只要小 ...
- Sql CE 数据库编程
用户工具: http://www.linqpad.net/ 查询编辑数据 http://sqlcequery.codeplex.com/ 查询编辑数据 开发人员工具: 安装:EF Tools nug ...
- nginx启动,重启,关闭
1.nginx启动: a. /usr/path/sbin/nginx -c [/etc/path/nginx.conf] 中括号中为指定加载的配置文件,不指定则加载默认配置文件 b. ...
- android代码格式化方法小结
转载:http://blog.csdn.net/androidzhaoxiaogang/article/details/7692526 Download the android-formatting. ...
- 第二十天File类、字节流
File类.字节流 File类 File类介绍 File:它是描述持久设备上的文件或文件夹的.只要是在Java程序中操作文件或文件夹肯定需要使用File类完成. File类构造方法 /* * File ...
- android抓日志
1. adb logcat -c 清楚以前的日志 adb logcat -s 过滤 adb logcat -s *:E adb logcat -v 指定输出的格式 adb logcat -v brie ...
- js 放大镜用法bug解决
<img id="zoom_02" src='img/zhang5.jpg' data-zoom-image="img/zhang5p.jpg" /> ...
- 模拟post请求-->测试api是否可用-->再交给ios开发
提交给iso开发前.先模拟post提交,测试返回是否正确 =============post.php文件 ios每次最少要提交5个数据, 加密串 seqno , 请求验证码 source, 设备唯一标 ...
- mac中使用终端生成RSA私钥和公钥文件
1.打开终端输入:cd Desktop/ //进入桌面 2.OpenSSL //打开 OpenSSL 3.生成私钥pem, 执行命令 genrsa -out rsa_private_ke ...
- mysql 排序后获得某行的位置
假设有test表,下图为表机构和数据,score表示积分.现在要查询积分排名为第几的id?? 查询语句 select id,score,(@rowno:=@rowno+1) as rowno from ...