Thread Rating:
  • 320 Vote(s) - 2.71 Average
  • 1
  • 2
  • 3
  • 4
  • 5
グリッドでもESCキーのイベントを透過させたい
08-27-2014, 10:37 AM,
#1
グリッドでもESCキーのイベントを透過させたい
表示されているViewに対して、ESCキーを押されたら閉じる、という処理を考えています。
ただ、RecordGrid のセルにフォーカスが入っている場合、
ESCキーを押しても、Viewが閉じません。

TextField などの場合は問題なく閉じるので、
グリッドにESCのキープレスイベントが握りつぶされているのではないかと思うのですが、
これを回避するにはどうすればよいでしょうか。

Code:
{def grid =
    {RecordGrid
        record-source =
            {RecordSet
                {RecordFields
                    {RecordField "a", nullable? = true}
                }
                ,
                {RecordData a = ""}
            },
        {RecordGridColumn "a"}
    }
}

||View の FocusManager に、ESC キーで閉じるイベントを設定する
{define-proc {add-esc v:View}:void

    {if-non-null fm = {v.get-focus-manager} then
        def ka =
            {KeyAccel
                key-accel-string = "Esc",
                {on Action do
                    {v.close}
                }
            }
        {fm.add-key-accel
            ka
        }
    }
}

{CommandButton
    label = "RecordGried の View",
    {on Action do
        def v = {View grid}
        {add-esc v}
        {v.show}
    }
}

{CommandButton
    label = "TextField の View",
    {on Action do
        def v = {View {TextField }}
        {add-esc v}
        {v.show}
    }
}


Messages In This Thread
グリッドでもESCキーのイベントを透過させたい - by umemura - 08-27-2014, 10:37 AM
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('1102')