当给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 冲突问题的更多相关文章

  1. WPF背景透明内嵌WebBrowser不显示问题,即AllowsTransparency = true 和 Webbrowser 等控件显示冲突

    首先感谢两位先导者: 1. 解决 WPF AllowsTransparency = true 和 Webbrowser 等控件显示冲突 原文地址:https://www.cnblogs.com/zhi ...

  2. kendo ui 富文本编辑控件 Editor 实现本地上传图片,并显示

    富文本编辑的组件有很多,大名鼎鼎的KENDO UI中自然也有,但是默认功能中,只能包含网络图片, 而如果要实现本地上传图片,KENDO UI也提供了相应的功能,但必须实现KENDO规定的多个接口, 而 ...

  3. 解决 WPF AllowsTransparency = true 和 Webbrowser 等控件显示冲突

    代码: public class FormsWebBrowser { Window _owner; FrameworkElement _placementTarget; Form _form; AxA ...

  4. ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决的方法

    fragment中加入了button和checkbox这些控件.此时这些子控件会将焦点获取到.所以经常当点击item时变化的是子控件.item本身的点击没有响应. 这时候就能够使用descendant ...

  5. refreshLayout 和 滑动控件的冲突解决

    listView.setOnScrollListener(new OnScrollListener() {           @Override     public void onScrollSt ...

  6. 点击按钮,生成一组一组combobox和slider时,避免控件Id相同,导致控件冲突的方法

    如下效果图,点击一次添加按钮,动态生成一组combobox和slider.由于easyUI的下拉框和滑块使用相同的控件id,通过JS生成控件,如果两个id一样就会造成冲突,例如点击第一组的下拉框,第二 ...

  7. C1控件的破解步骤

    最近接触了一个系统中的打印和报表控件用到了C1控件,控件在以前就注册了的,可是在这次修改了系统后,系统却提示C1的控件没有注册. 怎么回事呢?我们这次并没有修改报表,而且也没有和C1控件相关的改动.怎 ...

  8. vue和bootstrap的select控件貌似有冲突?

    貌似vue和bootstrap的select控件会冲突,因为bootstrap的select控件会将option替换为<a>标签,这样就会导致vue渲染失败.(这个问题让我整了一个上午,最 ...

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

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

随机推荐

  1. setting up a IPSEC/L2TP vpn on CentOS 6 or Red Hat Enterprise Linux 6 or Scientific Linux

    This is a guide on setting up a IPSEC/L2TP vpn on CentOS 6 or Red Hat Enterprise Linux 6 or Scientif ...

  2. HttpServletResponse应用----生成验证码

    1.1生成随机图片用作验证码 生成图片主要用到BufferedImage类 package gacl.response.study;import java.awt.Color;import java. ...

  3. 将json文件转换为字符串

    //从给定位置读取Json文件    public   String readJson(String path){        //从给定位置获取文件        File file = new ...

  4. bootstrap validator html attributes 选项

    常用的html属性:data-fv-message="The username is not valid"data-fv-notempty="true"data ...

  5. ELK 基本搭建

    ELK是一套日志分析系统: 开发人员不能登录线上服务器查看详细日志各个系统都有日志,日志数据分散难以查找日志数据量大,查询速度慢,或者数据不够实时一个调用会设计多个系统,难以在这些系统的日志中快速定位 ...

  6. 笨方法学python--参数,解包,变量

    1 cmd中执行 python ex11.py, ex11.py部分也是所谓的"参数". 2 from sys import argv script, first, second, ...

  7. perl 简单后门程序

    #!/usr/bin/env perl use warnings; use strict; use Socket; my $HOST='localhost'; ; socket(S,PF_INET,S ...

  8. [转载] Winform中几种好用的Grid Control

    转自 博客园 http://www.cnblogs.com/peterzb/archive/2009/05/29/1491781.html 1.DataGridView  .net 2.0框架自带的网 ...

  9. First blogs start

    这是我第一次写博客笔记,为了更好的成长,从现在开始我的博客记录. 我是从事linux运维的,到目前为止,已经有2年的工作经验了. 希望从此以后我能够坚持每天记录下点点滴滴.

  10. 2013最新Android常用的工具类整理

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Pref ...