【问题标题】:LiveCode: How to change the background color of a cell in a Data GridLiveCode:如何更改数据网格中单元格的背景颜色
【发布时间】:2016-12-14 13:22:13
【问题描述】:

在数据网格表中,我想更改“选定”单元格的背景颜色。

在表格中,用户可以在每一行中选择一个单元格(我使用了一个自定义属性,每次用户单击同一行时我都会增加该属性)。我想突出显示选定的单元格,例如通过更改它的背景颜色。

我该怎么做? 非常感谢。

【问题讨论】:

    标签: colors datagrid livecode


    【解决方案1】:

    我喜欢说我使用数据网格,但不了解它们。

    dataGrid 只是一个复杂的 LC 对象,由其他 LC 对象、组和行为组成。每个字段都被指定为:fld "Col 1 0002"(第一列,第二行)

    所以你可以:

      on mouseUp
        set the opaque of fld "col 1 0002" to "true"
        set the backColor of fld "col 1 0002" to "red"
      end mouseUp
    

    现在很可能有一种“本地”的方式来做这件事,但我不知道。

    【讨论】:

    • 感谢您的回答! ....但它不起作用...(没有这样的对象错误)。同时我的问题实际上是我不知道如何获取与单元格对应的字段,以便更改它。我可以访问单元格的值,但不能访问字段对象。
    • 好的,我终于找到了问题所在。我已经重命名了我的数据网格的列,它似乎不适用于其他名称(即使我在脚本中使用相同的名称)。它适用于预定义的名称,例如“Col 1”。谢谢你的帮助!正如我在问题中所问的那样,我现在正在努力将它用于为“选定的单元格”着色。
    • 我认为你可以删除你的其他答案,这与第一个并没有什么不同。
    【解决方案2】:

    如果我创建一个新的 DG 并用一些制表符填充它并返回分隔文本,我的处理程序会将指定的“单元格”变为红色。

    我确实注意到在我之前的帖子中“end mouseUp”之后有一个虚假字符。我编辑了它,但这可能导致您的问题吗?

    【讨论】:

      【解决方案3】:

      您感兴趣的“单元格”中有数据吗?如果为空,此方法将不起作用。 “没有这样的对象”?可能你也需要这个:

       on mouseUp
         set the opaque of fld "col 2 0003" of grp "yourDG to "true"
         set the backColor of fld "col 2 0003" of grp "yourDG" to "green"
      end mouseUp
      

      【讨论】:

        【解决方案4】:

        我找到了一种方法,感谢 dunbarx 的回答,并添加了“目标”的使用。

        on mouseUp 
            set the opaque of the target to "true"
            set the backColor of the target to "green"
        end mouseUp
        

        【讨论】:

        • 这是一个很好的洞察,毕竟这些只是字段。如果有一个内置的方法来设置这些属性,我仍然会感兴趣,假设该字段具有焦点。
        猜你喜欢
        • 1970-01-01
        • 2011-12-23
        • 1970-01-01
        • 1970-01-01
        • 2016-09-19
        • 1970-01-01
        • 2011-04-03
        • 1970-01-01
        • 2020-04-28
        相关资源
        最近更新 更多