如何得知我选中了cxgrid的哪一列? 
 
要得到选中的列的DataBinding.FieldName的值。 
 

解决方案 »

  1.   

    TcxCustomGridTableItem.Focusedfor i:=0 to Dataset.FieldCount-1 do
      if View.Columns[i].Selected then
        ShowMessage(View.Columns[i].DataBinding.FieldName);
      

  2.   

    ShowMessage(View.Columns[i].DataBinding.FieldName);
      

  3.   

    下面两个过程供你参考单击表头时触发的事件
    procedure TfrmDocLibrary.cxViewColumnHeaderClick(Sender: TcxGridTableView;
      AColumn: TcxGridColumn);
    begin
      ShowMessage(AColumn.DataBinding.FilterFieldName);
    end;
    点击单元格时触发的事件(需要双击)
    procedure TfrmDocLibrary.cxViewCellClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    begin
      ShowMessage(ACellViewInfo.Item.DataBinding.FilterFieldName);
    end;
      

  4.   

    取得当前选中的行的某个字段的值.
    GridView.DataController.GetDisplayText(GridView.Controller.SelectedRows[0].RecordIndex,GridView.DataController.GetItemByFieldName('item_no').Index)如果选定了多个行时可以用一个循环 这里的AView 和上面的GridView都是相同的,上面的是直接用名字,AView是动态取得当前选定的gridview(因为有时可能是主从表形式)
    var
      AView: TcxGridDBTableView;
      i: Integer;
    begin
      AView := TcxGridDBTableView(cxGrid1.FocusedView);
      for i:= 0 to AView.Controller.SelectedRowCount-1 do
      begin
        AView.DataController.GetDisplayText(AView.Controller.SelectedRows[i].RecordIndex,AView.DataController.GetItemByFieldName('item_no').Index);
      end;
    end;
      

  5.   

    这个问题,只能用For语句完成.