首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C1FlexGrid的数据采集器中双击鼠标移动时出错

在C1FlexGrid的数据采集器中双击鼠标移动时出错
EN

Stack Overflow用户
提问于 2014-07-08 08:07:05
回答 1查看 430关注 0票数 0

Build : C1Flexgrid v.2.5.20053.230

.Net 4.0使用C# WinForms

我的表单上有一个C1Flexgrid,多个数据填充为

代码语言:javascript
复制
//cfg is C1FlexGrid, pDataTable is DataTable

cfg.Clear(ClearFlags.UserData);

foreach (DataColumn dCol in pDataTable.Columns)
{
    cfg.Cols.Count += 1;
    iCol = cfg.Cols.Count - cfg.Cols.Fixed;
    cfg.Cols[iCol].Name = dCol.ColumnName;
    cfg.Cols[iCol].Caption = dCol.ColumnName;
    cfg.Cols[iCol].DataType = dCol.DataType;

    switch (dCol.DataType.ToString())
    {
        case "System.DateTime":
        {
            cfg.Cols[iCol].Format = "dd-MMM-yyyy";
            break;
        }
        case "System.Decimal":
        {
            cfg.Cols[iCol].Format = "N3";
            break;
        }
        default:
            break;
    }
}
cfg.DataSource = pDataTable.Copy();

当我双击datepicker弹出以选择一个日期,然后移动鼠标,应用程序崩溃。

edit

为了增加关注,如果我使用enter键和箭头键将焦点从datepicker弹出转移到下一个单元格,则没有错误。

对于原因是“我的创造”还是C1Flexgrid上的一个bug,有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-21 09:55:39

在你的问题描述中有两件令人困惑的事情。首先是DataTable:pDataTable的初始化,其次是环境信息。您是如何在您的.NET 4.0项目中添加了特定于框架2的构建的,这是未知的。请转到C1Pre-释放查找最新的柔性网格构建或使用这个建筑更新您的项目。

按照以下步骤解决问题:

  1. 将项目框架更改为.NET 4完整配置文件。您可以通过在解决方案资源管理器中右键单击您的项目来做到这一点。选择“应用”选项卡。将目标框架更改为“.NET框架4”
  2. 更新C1FlexGrid引用。可以通过单击解决方案资源管理器中解决方案的“引用”节点来完成此操作。删除C1.Win.C1FlexGrid.2。通过使用这个建筑进行更新来添加新的引用。
  3. 运行应用程序

如果这不能解决您的问题,根本问题将是您的pDataTable初始化。

请参见以下片段:

代码语言:javascript
复制
private void Form1_Load(object sender, EventArgs e)
    {
        int iCol;

        pDataTable.Columns.Add("Dosage", typeof(int));
        pDataTable.Columns.Add("Drug", typeof(string));
        pDataTable.Columns.Add("Patient", typeof(string));
        pDataTable.Columns.Add("Date", typeof(DateTime));

        pDataTable.Rows.Add(25, "Indocin", "David", DateTime.Now);
        pDataTable.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
        pDataTable.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
        pDataTable.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
        pDataTable.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

        this.cfg.Clear(C1.Win.C1FlexGrid.ClearFlags.UserData);

        foreach (DataColumn dCol in pDataTable.Columns)
        {
            cfg.Cols.Count += 1;
            iCol = cfg.Cols.Count - cfg.Cols.Fixed;
            cfg.Cols[iCol].Name = dCol.ColumnName;
            cfg.Cols[iCol].Caption = dCol.ColumnName;
            cfg.Cols[iCol].DataType = dCol.DataType;

            switch (dCol.DataType.ToString())
            {
                case "System.DateTime":
                    {
                        cfg.Cols[iCol].Format = "dd-MMM-yyyy";
                        break;
                    }
                case "System.Decimal":
                    {
                        cfg.Cols[iCol].Format = "N3";
                        break;
                    }
                default:
                    break;
            }
        }
        cfg.DataSource = pDataTable.Copy();
    } 

除了环境之外,这个片段中的惟一不同的是DataTable的结构。当我编译时,当我双击datepicker弹出以选择日期,然后移动鼠标时,没有观察到崩溃。

您可以从这里下载工作项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24626657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档