Delphi cxGrid表对行的操作

能不能让CXGrid的某行为只读,也就是无法编辑,不是某列无法修改,我要的是某行为不可编辑的状态。我要代码的。还有个问题,cxgrid在设置主从表后,在cxgrid右击弹... 能不能让CXGrid的某行为只读,也就是无法编辑,不是某列无法修改,我要的是某行为不可编辑的状态。我要代码的。
还有个问题,cxgrid在设置主从表后,在cxgrid右击弹出菜单点‘展开所有’,可以展开,不过在从表里点‘收缩所有’会出错,在主表只点‘收缩所有’就会不出错,我用转移焦点来试好像也不怎么有效果 ,用判断表名是可以,不过有时会被误认为功能失效的。请问还有什么更好的办法,
展开
 我来答
jackalwin
2011-03-21 · TA获得超过171个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:317万
展开全部
通过tableview的onEditing事件控制编辑状态,可以根据你的条件,符合条件的设置为:AAllow := False; 即可。
如果需要条件,代码和如下类似:
if (TableView.Controller.FocusedRecord.Values[需要判断的列] = 值) and (AItem.Index= 第几列) then
AAllow := False
else
AAllow := True;
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
kuyuelove
2011-03-29 · 超过27用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:85.2万
展开全部
在mousedown事件里面写:(这个是dbgrideh的代码,cxgrid估计差不多,你自己改改)
if ((Grd.DataSource.DataSet.FieldByName('aa).AsString = 'XXXX')
or (Grd.DataSource.DataSet.FieldByName('aa').AsString = 'ZZZZ') or
(Grd.DataSource.DataSet.FieldByName('bb').AsString = 'NNNN'))
and (Button = mbLeft) then //你自己设置条件
Grd.Columns.Items[0].ReadOnly := True
else
Grd.Columns.Items[0].ReadOnly := False;

补充的问题,你可以试试看,从表有什么属性可以禁止弹出右键菜单没有,如果没有这个属性,你可以自己在点击右键时,自己加个判断,如果是从表,就直接退出,不弹出右键菜单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式