zoukankan      html  css  js  c++  java
  • cxGrid 单元格回车移到下一行,当移到最后一个单元格时回车新增一行【转】

    1 在TcxGridDBTableView中,设定属性

      NewItemRow.Visible = True

    2 在cxgrid中输入数据怎样回车换行
      在TcxGridDBTableView中
      将属性OptionsBehavior.FocusFirstCellOnNewRecord = True //新纪录焦点获取
            OptionsBehavior.GoToNextCellOnEnter = True //这一行的目的是用回车键自动换行
            OptionsBehavior.FocusCellOnCycle = True//对只允许行选择的回车键效果起作用
    就可以了.

    如果愿意也可以添加其自带的操作按钮,OptionsView.Navigator = True

    随后在NavigatorButtons属性中做微调。

    3 使用TcxGridDBCardView录入时,一些属性不一样,此时除了修改OptionsBehavior中的属性值外,还要修改OptionData.Appending=True,同时要添加其自带的操作按钮,才行。

    二、LookUp功能


    1 在cxGrid中使用LookUp功能
      在相应的列(TcxGridDBColumn)中将属性Properties = LookupComboBox
                Properties.ListSource = 数据源
                Properties.ListFieldNames = 相应字段
                Properties.KeyFieldNames = 关键字段
      也可以修改Properties.ListOptions.ShowHeader,可控制是否显示列头。

    https://blog.csdn.net/zengcong2013/article/details/12267301


    在cxgrid中,如何获取当前列的索引号,按回车键光标移到下列 (50分)

    yepemig (2006-05-30 11:19:26)

    你的问题好简单,只是设一个属性的事情.
    OptionsBehaviOr->GoToNextCellOnEnter:=True;

    我再帮你完善一下.可以在焦点到了最后一列再回车时有下一行则移到下一行的第一列,没有下一行则新增记录并移到第一列
    procedure TCUSTOMQRYFRM.MstGridDBTableViewEditKeyDown(
     Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
     AEdit: TcxCustomEdit; var Key: Word; Shift: TShiftState);
    begin
     inherited;
     if Key=VK_RETURN then begin
       if MstGridDBTableView.Controller.FocusedColumnIndex=MstGridDBTableView.VisibleColumnCount-1 then begin
         with MstGridDBTableView.DataController do begin
           if IsEof  then begin   // or (RecNo=RecordCount)
             MstGridDBTableView.DataController.Append;
           end else begin
             MstGridDBTableView.DataController.MoveBy(1);
           end;
           MstGridDBTableView.Controller.FocusedItemIndex:=-1;
         end;
       end;
     end;
    end;

    yepemig (2006-05-30 11:41:06)

    其实还可以更完善一点的.但我到现在还实现不了.
    1. 如果焦到移到了某列.如果此列有下拉框之类的.就自动下拉,用户选择并回车后焦点移到下一列.
    2.由于一般我们是自已设定列的properties为有下拉控件的.这时我可以用代码判断这列的properties是否有下拉进而实现第一点的工能.但是如果这个列的properties的下拉控件是运行时cxGrid自已默认设定的下拉控件(如字段是fkLookup类型的.cxGrid会自动在这列上设为下拉的).这时我就无法用代码判断这列的properties是不是有下拉了(我现在的能力不能做到).这就导致我不能实现第一点的功能.

    在w1229的这个贴里希望抛砖引玉,能引起高手对改善cxGrid的录入操作问题的讨论.

    w1229 (2006-06-01 12:03:36)

    yepemig你好!把50分全部送给你.
    非常感谢你对我的问题的回答,回答cxgrid控件的高手很少.
    我看过一些软件,也想这样做:
    当某个单元格获得焦点时,如果该列有固定选项(如:性别,男/女),就显示一个列表框之类的控件(男/女),只输入代码1/2,也可以输入男/女.
    我认为需要在单元格获得焦点和失去焦点事件时分别处理.我不知道有没有单元格获得焦点和失去焦点的事件.

    https://blog.csdn.net/chelen_jak/article/details/7083049

  • 相关阅读:
    字符串的基本操作
    PHP & Delphi 語法
    Delphi项目构成之单元文件PAS
    Delphi项目构成之项目文件DPR
    Delphi项目的构成
    關於那我的編程歷史..
    點擊Button,在Label1顯示HelloWorld!。
    開博客了, 因為搞Delphi 開發的關於Delphi學習
    Java 基础知识(一)
    关于多线程对于全局变量的资源竞争问题
  • 原文地址:https://www.cnblogs.com/railgunman/p/8831104.html
Copyright © 2011-2022 走看看