1、数据集不能设置只读,因为读取 Excel 到数据集
2、在 cxGrid 上面,设置 cxGrid1DBTableView1 的 Editing := False 或者 cxGridDBColumn := False,不能得到单元格里面的焦点
3、如果该列的 Properties 设置成 LookupComboBox,是否也可以达到这种效果?

解决方案 »

  1.   

    uses Clipbrd;
    ----------------------
      if ADBTableView.OptionsSelection.MultiSelect then //多选复制
      begin
        ADBTableView.CopyToClipboard(False);
      end else //单选只复制单元格
      with ADBTableView,ADBTableView.Controller,ADBTableView.DataController do
      begin
        m := FocusedItemIndex;
        n := FocusedRowIndex;
        Clipboard.AsText := VarToStr(GetValue(n,m));
      end;
      

  2.   

    可以在properties.onkeypress,將key:= #0,達到不能編輯的假想,但可以復制
      

  3.   

    Properties选textedit,然后设置属性readonly为true
      

  4.   

    3楼的,如果是  Properties 设置成 LookupComboBox,ReadOnly := True 确实可以只读,可是旁边的下拉按钮仍然可见,仍然可以下拉选择记录,很讨厌,有没有好点的办法?
      

  5.   

    不是 LookupComboBox 是textedit
      

  6.   

    我理解能力太差了,如果你的要求是:cxGrid列,可以得到焦点,即会出现光标,但是,不允许输入,那么:3楼:Properties选textedit,然后设置属性readonly为true
    正解。如果列属性是LookupComboBox,那么,也一样是设置ReadOnly为True,如果不出现下拉按钮,则:
    if colField.Properties is TcxLookupComboBoxProperties then
     TcxLookupComboBoxProperties(colField.Properties).Buttons.Items[0].Visible := False;
      

  7.   

    你指定propeties之后,在事件列表部分,點開properties就會有onkeypress你的需求是,不能編輯,但可以復制。是這樣理解的吧?
    若是這樣,設定readonly,就不能復制了....
      

  8.   

    ahpei(老人家)
    下拉按钮确实没了,但是如果随便敲一下键盘,下拉选项还是出来,怎么样不出来呢?Avan_Lau(OnlyYou) 我用的 cxGrid 4.2
    cxGridDBColumn 的properties 确实没有你说的事件,不过根据你的提示,我在 cxGrid1DBTableView1 上面的 OnEditKeyPress 事件里面写了代码,确实可以,而且简单