• cxGrid动态创建带CheckBox列时遇到的问题...


    目的:为了不太依赖设计时添加cxGrid列并绑定数据,决定动态创建cxGrid列,其中CheckBox未绑定数据集

    代码

     1 // 动态创建GridView
    2 procedure MyClass.initializecxMyGoods(cxGrid_DBTableView1:TcxGridDBTableView);
    3 begin
    4
    5 cxGrid_DBTableView1.DataController.DataModeController.GridMode
    6 := False;
    7 cxGrid_DBTableView1.DataController.DataModeController.
    8 SmartRefresh := True;
    9 // 设置主键
    10 cxGrid_DBTableView1.DataController.KeyFieldNames := 'ID';
    11
    12 with cxGrid_DBTableView1.CreateColumn do
    13 begin
    14 Name := 'colUnbound';
    15 Caption := '选择';
    16 DataBinding.ValueTypeClass := TcxBooleanValueType;
    17 PropertiesClass := TcxCheckBoxProperties;
    18 MinWidth := 40;
    19 with TcxCheckBoxProperties(Properties) do
    20 begin
    21 AllowGrayed := False;
    22 ValueChecked := True;
    23 ValueUnchecked := False;
    24 NullStyle := nssUnchecked;
    25 //绑定事件,如果不取消checkbox焦点,拖拽分组时出现错误提示:Privileged instruction 
    26 OnChange := CancleFocuse;
    27 end;
    28 end;
    29
    30 with cxGrid_DBTableView1.CreateColumn do
    31 begin
    32 Caption := '商品名称';
    33 DataBinding.FieldName := 'name';
    34 MinWidth := 100;
    35 end;
    36 //创建用来显示文本
    37 with cxGrid_DBTableView1.CreateColumn do
    38 begin
    39 Caption := '备注';
    40 DataBinding.FieldName := 'note';
    41 DataBinding.ValueType := 'Variant';
    42 PropertiesClass := TcxBlobEditProperties;
    43 with TcxBlobEditProperties(Properties) do
    44 begin
    45 BlobEditKind := bekMemo;
    46 BlobPaintStyle := bpsText;
    47 end;
    48 MinWidth := 40;
    49 end;
    50
    51 end;

    当改变checkbox时,若焦点不转移到其他列则出现 Privileged instruction错误!

    具体原因还未找到,临时解决方案 在CheckBox的OnChange事件中解除焦点 : cxGrid_mygoodsDBTableView1.Focused := False;

    onCancle:

    1 procedure MyClass.CancleFocuse(Sender: TObject);
    2 begin
    3 // 释放焦点 (解决分组时出现的指令越界 , 问题不明,未从根本解决)
    4 cxGrid_DBTableView1.Focused := False;
    5 end;

    暂时解决问题!具体原因有时间再搞。。。 

    //代码基本来自网上  

  • 相关阅读:
    P1456 Monkey King
    P3377 【模板】左偏树(可并堆)
    P1074 靶形数独
    P1120 小木棍
    P5490 【模板】扫描线
    糖糖别胡说,我真的不是签到题目
    最长公共子序列
    最长上升子序列
    数的三次方根
    地、颜色、魔法(dfs)
  • 原文地址:https://www.cnblogs.com/xspace/p/2110941.html
Copyright © 2020-2023  润新知