在filterrow中隐藏devexpress编辑器

时间:2016-04-20 15:14:14

标签: delphi devexpress tcxgrid

我有一个TcxGrid,我在其中定义了一个过滤器,但由于我在网格中有一些复选框和按钮,它们也显示在过滤器中。 我已经尝试了几乎所有东西来摆脱它们,但没有任何作用。 DevExpress的答案也没有帮助(如果我有时间实际改变其他组件)

有没有人使用过这个并且可能有我可以使用的解决方案?

enter image description here

1 个答案:

答案 0 :(得分:2)

下面的项目显示了数据行下方的过滤器框(我认为你在谈论它)并且没有任何 为网格列定义的控件。我希望这是你追求的那种。

顺便说一下,我用最近版本的TcxGrid做了这个,可以追溯到今年早些时候,v.15 iirc。

更新我承认我对您的问题感到困惑,因为filter row中显示控件的原因当然是允许用户指定过滤器的值,所以如果你要隐藏它们,用户无法使用filter row。如果你想要一个比我更好的答案,我想你需要更新你的q来解释你正在尝试做什么。

我不确定您是否知道,但过滤器具有Position属性,可以设置该属性,以便该框显示在数据行上方。

代码

  TForm1 = class(TForm)
    cxGrid1DBTableView1: TcxGridDBTableView;
    cxGrid1Level1: TcxGridLevel;
    cxGrid1: TcxGrid;
    CDS1: TClientDataSet;
    CDS1Marked: TBooleanField;
    CDS1ID: TIntegerField;
    DS1: TDataSource;
    cxGrid1DBTableView1ID: TcxGridDBColumn;
    cxGrid1DBTableView1Marked: TcxGridDBColumn;
    CDS1Value: TIntegerField;
    cxGrid1DBTableView1Value: TcxGridDBColumn;
    procedure FormCreate(Sender: TObject);
  private
  protected
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  CDS1.CreateDataSet;
  CDS1.InsertRecord([0, False, 99]);
  CDS1.InsertRecord([1, False, 88]);
  CDS1.InsertRecord([2, False, 77]);
  CDS1.InsertRecord([3, False, 66]);
  CDS1.First;
end;

end.

DFM

object Form1: TForm1
  Left = 267
  Top = 103
  Caption = 'MADefaultForm'
  ClientHeight = 360
  ClientWidth = 454
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  Position = poScreenCenter
  Scaled = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object cxGrid1: TcxGrid
    Left = 0
    Top = 0
    Width = 454
    Height = 360
    Align = alClient
    TabOrder = 0
    object cxGrid1DBTableView1: TcxGridDBTableView
      Navigator.Buttons.CustomButtons = <>
      FilterBox.Visible = fvAlways
      DataController.DataSource = DS1
      DataController.Filter.Active = True
      DataController.KeyFieldNames = 'ID'
      DataController.Summary.DefaultGroupSummaryItems = <>
      DataController.Summary.FooterSummaryItems = <>
      DataController.Summary.SummaryGroups = <>
      FilterRow.Visible = True
      object cxGrid1DBTableView1ID: TcxGridDBColumn
        DataBinding.FieldName = 'ID'
      end
      object cxGrid1DBTableView1Marked: TcxGridDBColumn
        DataBinding.FieldName = 'Marked'
        Width = 97
      end
      object cxGrid1DBTableView1Value: TcxGridDBColumn
        DataBinding.FieldName = 'Value'
        PropertiesClassName = 'TcxTextEditProperties'
      end
    end
    object cxGrid1Level1: TcxGridLevel
      GridView = cxGrid1DBTableView1
    end
  end
  object CDS1: TClientDataSet
    Aggregates = <>
    Params = <>
    Left = 48
    Top = 24
    object CDS1ID: TIntegerField
      FieldName = 'ID'
    end
    object CDS1Marked: TBooleanField
      FieldName = 'Marked'
    end
    object CDS1Value: TIntegerField
      FieldName = 'Value'
    end
  end
  object DS1: TDataSource
    DataSet = CDS1
    Left = 88
    Top = 24
  end
end