作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经实现了带有一些列的 TcxGrid。该网格最后一列中的单元格包含 TcxEditButton 类型的按钮。
网格的内容要么由用户输入,要么在创建其父表单时从文本文件加载。
我想根据网格中的值隐藏其中一些按钮。确定按钮可见性的值可以从网格内存数据集中读取,也可以直接从网格中的隐藏列读取。
我的问题是我无法找到正确的事件来检查值并设置按钮可见性属性。我尝试在网格表和包含按钮的列上使用各种事件。
关于如何获取按钮项目并同时能够在绘制网格时设置它有什么建议吗?
解决方案:如果解决方案被接受,最终使用修改版本。
procedure TFrame_cx_Element_Inntasting_Kriterier.cxGrid_InntastingDBTVPropertiesGetProperties(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
begin
if ARecord.Values[cxGrid_ColumnWithValidatedValue.Index] = true then
AProperties := cxEditRepository1ButtonItem1.Properties
else
AProperties := cxEditRepository1Label1.Properties;
end;
最佳答案
使用类型为 TcxEditButton 的列的 OnGetProperties 事件。
使用 ARecord,您可以根据列索引获取同一行的另一列的值。
设置属性的最简单方法是在 TcxEditRepository 中使用两个预定义的 TcxEditButton,例如名为 ButtonsVisible 和 ButtonsInvisible。
该事件看起来像这样:
procedure TForm1.cxGrid1TableView1EditButtonColumnGetProperties(
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
var AProperties: TcxCustomEditProperties);
var
Value: Variant;
Buttons: TcxEditButtons;
ButtonEnabled : Boolean;
begin
if VarIsNull(ARecord.Values[cxGrid1TableView1ColumnToCheck.Index]) then
AProperties := ButtonsInvisible.Properties;
// or AProperties := ButtonsVisible.Properties depending on what you want/need
Value := ARecord.Values[cxGrid1TableView1ColumnToCheck.Index];
if (Value = ValueWhenVisible) then
AProperties := ButtonsVisible.Properties
else
AProperties := ButtonsInvisible.Properties;
end;
希望这能让您走上正轨。
关于delphi - 隐藏 TcxGrid 中某些行的 TcxEditButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352083/
我已经实现了带有一些列的 TcxGrid。该网格最后一列中的单元格包含 TcxEditButton 类型的按钮。 网格的内容要么由用户输入,要么在创建其父表单时从文本文件加载。 我想根据网格中的值隐藏
我是一名优秀的程序员,十分优秀!