* リストボックスに不要な点線が残る [#d1da38f2]
 |RIGHT:|LEFT:|c
 |~ページ|[[OpenOffice.org FAQの登録ページ]]|
 |~投稿者|Hatanobou|
 |~分類|#listbox3(Q&A,faq03,class)|
 |~優先順位|#listbox3(低,faq03,priority)|
 |~状態|#listbox3(回答中,faq03,state)|
 |~状態|#listbox3(完了,faq03,state)|
 |~カテゴリー|#listbox3(その他,faq03,category)|
 |~投稿日|2009-10-20 09:38:47 (火)|
 |~OS|WinVista,Xp,2K|
 |~依存するページ||
 |~バージョン|#listbox3(3.1.1,faq03,version)|
 
 ** メッセージ [#t88774e8]
 |LEFT:|c
 |回答ページでは行末に「~」を付加する必要はありません|
 Basicにてダイアログにリストボックスを作成しています。
 スクロールバーが表示する状態でクリックし、一旦カーソルを表示外に隠します。
 その後スクロールバーなどでスクロールしカーソルを表示させると、カーソルと違う位置に点線が表示されてしまいます。
 
 この現象は、Calcの[セルのフォーマット]-[外枠]-[線]の[スタイル]でも確認できます。
 また同じダイアログの[数]-[分類]や[書式]のリストボックスでは起こりません。
 
 プログラムの際に注意することはありますでしょうか?
 ご教示くださいますようよろしくお願いいたします。
 
 ----
 ***上下だけで再現 [#q5fb81be]
 >K.Tsunoda (2009-10-20 10:04:24 (火))~
 ~
 解消方法は残念ながら判りませんが、~
 スクロールバーの上下ボタンで1行上下させるだけで再現します。~
 ~
 フォーカスの点線枠ですね。~
 ~
 [上]を1クリックすると選択行の下の行に点線枠が、~
 [下]を1クリックすると選択行の上の行に点線枠が移ります。~
 ~
 リストボックス以外のコントロールにフォーカスを移してから、~
 スクロールバー(or 上下ボタン)を動かしても点線枠は出ません。~
 (リストボックスにフォーカスがありませんので)~
 
 //
 ***サンプルをお願いします [#p3826e10]
 >M.Kamataki (2009-10-20 14:38:31 (火))~
 ~
 できれば多くの方に問題を共有してもらうため、サンプルの作成をお願いします。添付方法は、「当サイトの使い方/高度な使い方」を参照してください。~
 
 //
 ***サンプルを添付いたします [#s05de95f]
 >Hatanobou (2009-10-20 17:30:09 (火))~
 ~
 ご確認ありがとうございます。~
 サンプル Library1.oxt を添付いたします。~
 よろしくお願いいたします。~
 
 //
 ***画像添付 [#ib26ea44]
 >ike@九州 (2009-10-21 08:43:33 (水))~
 ~
 残念ながら添付サンプルのリストでは再現しませんでしたが、~
 書式>セル>外枠タブでは再現しました~
 ~
 #ref(focus.png)~
 
 //
 ***画面の更新 [#vd063892]
 >M.Kamataki (2009-10-21 11:46:00 (水))~
 ~
 サンプルを添付いただきありがとうございます。実はわたしもダイアログ上のリストボックスでは問題を確認できませんでした。~
 ~
 外枠タブの線の選択では再現しました。なお、画面の更新が行われると(例:他のウインドウをクリックするなど)消えました。~
 ~
 深刻な不具合ではありませんが、正しい画面更新が行われないのは事実のようですね。~
 
 //
 ***サンプルでの現象発生方法 [#z9f3df30]
 >Hatanobou (2009-10-22 09:48:07 (木))~
 ~
 ご確認ありがとうございました。~
 先日添付したサンプルで現象再現にコツがいります。(わかりにくくすみません)~
 カーソル表示して、一旦表示外にスクロールした後キー入力で一行移動します。その後マウスなどでスクロールを行うと現象が発生します。~
 ~
 #ref(Library1.jpg,nolink);~
 
 //
 ***デザインモードでも単純に再現 [#v0edc1c7]
 >K.Tsunoda (2009-10-22 10:26:45 (木))~
 ~
 ( WindowsXP/OOo 3.0.0 )ですが、下記で再現します。~
 ~
 (1)IDEでダイアログにリストボックスを配置。~
 (2)プロパティ[リストの項目]に手入力で10数件登録し、~
 (3)リストボックスの高さをスクロールバーが出る高さに調整。~
 (4)デザインモードでダイアログを表示。~
 (5)リストの中程の項目を選択(選択のブルー&フォーカスの点線枠)。~
 (6)スクロールバーの上下ボタンで1行上下。~
 (7)選択行(ブルー)の上または下にフォーカスの点線枠が残ります。~
 ~
 でも、ブルーの選択行の上下だけで、上図のように離れた位置にはならないです。~
 
 //
 ***再現しました [#qfd535e7]
 >M.Kamataki (2009-10-22 10:31:38 (木))~
 ~
 >キー入力で一行移動します~
 ~
 この操作を加えたところ再現しました。やはり画面の更新の問題でしょうね。~
 
 //
 ***無題 [#a9e9e919]
 >ike@九州 (2009-10-22 11:38:18 (木))~
 ~
 現時点では、マウスでのスクロールバー、ボタン操作時のみのようなので~
 ~
 リストボックスのイベント "マウスの操作時" に以下~
 無理やりフォーカス再設定くらい?…他イベント併用ではどうなるか分かりませんね~
 ~
 'マウス操作停止時反映される~
 Sub list_setfocus~
 oListBoxColumnName = oMainDlg.getControl("ListBox1")~
 oListBoxColumnName.setfocus()~
 End sub~
 
 //
 ***試してみました [#x2fe8f5c]
 >Hatanobou (2009-10-23 16:11:20 (金))~
 ~
 皆様ありがとうございます。~
 フォーカスを設定してみました。~
 マウスが動いている間は現象を抑えられました。~
 
 //
 ***とりあえず完了にします [#pdf2152b]
 >M.Kamataki (2009-10-24 10:39:02 (土))~
 ~
 プログラムの際の回避方法のアドバイスがありましたので、とりあえず「完了」にしておきます。~
 
 //
 #article