[CardWirth] StrataCard →1.13(途中)
- 2010/12/15 23:38
- カテゴリー:CardWirth, 作ってるモノ, ツール
- タグ:CWツール@StrataCard
ちょっとした改良(?)中です。
これまでのバージョンの「最前面=枠」を使っていて、最前面以外を枠扱いしたい場合もあるのに気付きました。この機能はカード絵に額縁みたいなものをつける事を想定して作ったものですが、枠にしたいパーツが最前面でない時、例えば背景となる絵を枠で区切って台紙のようなものを作り、その上に枠に邪魔されない形でアイテムなどの絵を乗せたい時などには使えません。
で、「最前面=枠」のチェックボックスを廃止する代わりにパーツ一覧をCheckedListBoxにし、リスト内でチェックしたパーツを枠として扱う、という事にしました。
CheckedListBoxにはItemCheckイベントというものがあり、説明を読むと「項目のチェック状態が変更されると発生します。」と書いてあります。チェック状態変更と同時に枠扱いか通常扱いかを切り替えるのはこれで行ける、簡単。と思ったら、大間違いでした。
確かにItemCheckイベントはチェック状態が変わる時に発生するのですが、そのタイミングが変更の直前らしいのです。つまり、使用者がリストのチェックボックスをクリック→ItemCheckイベント発生→実際にチェック状態が変わる、の順。ItemCheckイベントの時点で分かるのは変更前の状態で、変更後を画像に反映させるために使うには問題があります。
そうか。あくまでItemCheckで、ItemCheckedではないものなー。。。
CheckBoxのCheckedChangedと同様のチェック状態が「変わった」事を検出するイベントが無い以上、小細工か、そもそもCheckedListBoxでチェックという部分から変えるかで乗り切る他なさそうです。
何かスマートな解決方法は無いもんでしょうかね。