03-24-2014, 01:55 PM,
(This post was last modified: 03-24-2014, 01:56 PM by umemura.)
|
|||||
|
|||||
StandardStringCell.create-editor では、self を使わないこと
★point
StandardStringCell.create-editor で自分自身(StandardStringCell)のインスタンスを取得するには、 get-grid-cell プロシージャを利用すること たとえば、セルにフォーカスが入ったら、そのセルを強調表示するために、 背景色をつけたい、と思って、 下記のような記述をしても、うまくいきません。 Code: {define-class public open CustomStringCell {inherits StandardStringCell } 原因は、StandardStringCell.create-editor の中で、セルのインスタンスを取得している方法が self だから。 create-editor は、そのカラムのなかの、いずれかのセルにファーカスが入るなどして、 最初に要求されたときだけ呼ばれるメソッドなので、 このメソッドのなかでself を利用してしまうと、最初のセルにポインタが張られてしまい、 プログラマが意図する、「フォーカスが入ったセル」ではなくなってしまいます。 意図した振舞いをさせるには、下記のように、get-grid-cell を利用して、 毎回セルを再取得すると良いようです。 Code: {define-class public open CustomStringCell {inherits StandardStringCell } また、この方法は、StandardDropdownCell でも同様です。 |
|||||
« Next Oldest | Next Newest »
|
Users browsing this thread:
1 Guest(s)
1 Guest(s)