tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルoptionの表示(バグ?)
記事No12132
投稿日: 2008/04/27(Sun) 21:53
投稿者さんた
フォームにoption1,option2,option3と貼り付け、一覧検索方式でボタン
押下後にoptionを全てenabledをfalseにし、表示後にtrueに戻してます。

すると、option1にチェックが付いた形で検索したはずなのに、
表示後はoption3にチェックが付いた状態で表示されてしまいました。

ソースで気付かない内にセットしてる所があるのかと、ブレークポイントで
ちぇっくしましたが、その時はちゃんとoption1がチェックされた状態で
終了しました。

こんな経験ありませんか?

[ツリー表示へ]
タイトル解決?
記事No12142
投稿日: 2008/04/29(Tue) 01:41
投稿者さんた
解決ではないですが、処理中の前後でenabledをtrue,falseと指定するとこのように
なるようです。しないようにしました。

[ツリー表示へ]
タイトルRe: 解決?
記事No12150
投稿日: 2008/04/30(Wed) 12:07
投稿者るしぇ
オプションボタンはグループの中で1つだけ選択されるような
動きが実装されています。Enabled を変更して選択不可の
状態になれば、残りのオプションボタンへ選択が移動するのが
正常な動作だと思います。

[ツリー表示へ]
タイトルRe^2: 解決?
記事No12156
投稿日: 2008/04/30(Wed) 16:37
投稿者さんた
> オプションボタンはグループの中で1つだけ選択されるような
> 動きが実装されています。Enabled を変更して選択不可の
> 状態になれば、残りのオプションボタンへ選択が移動するのが
> 正常な動作だと思います。

なるほどです。検索条件などで使用する際、検索中はvisibleを変更した方がいいんですね。
ありがとうございます、解決しました。

[ツリー表示へ]
タイトルRe^3: 解決?
記事No12157
投稿日: 2008/04/30(Wed) 19:05
投稿者魔界の仮面弁士
> > オプションボタンはグループの中で1つだけ選択されるような
> > 動きが実装されています。Enabled を変更して選択不可の
> > 状態になれば、残りのオプションボタンへ選択が移動するのが
> > 正常な動作だと思います。
残りの OptionButton がフォーカスを受け取るまでは、
元の OptionButton が、チェックされたままの状態を維持しますね。


> 検索条件などで使用する際、検索中はvisibleを変更した方がいいんですね。
OptionButton は、グループ化のために、(BorderStyle=あり/なしの)GroupBox に
載せられることが多いですよね。OptionButton の Enabled を個別に切り替えるのでは無く
検索中は、その GroupBox ごと Enabled = False にしておいてみては如何でしょうか。

[ツリー表示へ]
タイトルRe^4: 解決?
記事No12158
投稿日: 2008/05/01(Thu) 09:11
投稿者さんた
魔界の仮面弁士さん、ありがとうございます。

> > 検索条件などで使用する際、検索中はvisibleを変更した方がいいんですね。
> OptionButton は、グループ化のために、(BorderStyle=あり/なしの)GroupBox に
> 載せられることが多いですよね。OptionButton の Enabled を個別に切り替えるのでは無く
> 検索中は、その GroupBox ごと Enabled = False にしておいてみては如何でしょうか。

ちょうど、Frameを使っていたのですが、Frame1.ClipControls = Falseで
教えていただいたように対象のコントロールを制御できるんですね。

簡潔になり、enabledのような、灰色がかからなくなりすっきりしました。
ありがとうございます。

[ツリー表示へ]
タイトルRe^5: 解決?
記事No12163
投稿日: 2008/05/01(Thu) 10:02
投稿者魔界の仮面弁士
> ちょうど、Frameを使っていたのですが、
おぉぅ、VB6 では (GroupBox ではなく)Frame でしたね、そういえば。(汗)


> Frame1.ClipControls = Falseで
> 教えていただいたように対象のコントロールを制御できるんですね。
あれ? ClipControls は、描画系にこそ影響を与えますが、
コントロールの動作を変更する働きは無かったような。

[ツリー表示へ]
タイトルRe^6: 解決?
記事No12167
投稿日: 2008/05/01(Thu) 11:14
投稿者さんた
魔界の仮面弁士さん、ありがとうございます。

これは単純に処理中なのですぐに反映されないだけで、処理後フォーカスが当たったり
するのを見るとメモリには保持されているのかもしれません・・。
Enabledは完全に要求をブロックしてくれるようですが。

(Frameのenabledも同じでした・・)
まぁ、いいかな?と妥協しそうになってます。

ありがとうございました。

[ツリー表示へ]
タイトルRe^7: 解決?
記事No12171
投稿日: 2008/05/01(Thu) 12:22
投稿者魔界の仮面弁士
> Enabledは完全に要求をブロックしてくれるようですが。

コントロールを Enabled = False にした状態であっても、長い処理を行っている最中に
フォーカス移動やコントロールをクリック等の操作が発生した場合は、
Enabled = True に戻したときに、それらの動作が後追いで通知される事があります。

その場合は、「Enabled = True に戻す直前」に DoEvents を入れる事で
そうした通知が事前に処理され、問題を解決できる可能性があります。

[ツリー表示へ]
タイトル解決!
記事No12172
投稿日: 2008/05/01(Thu) 12:33
投稿者さんた
魔界の仮面弁士さん、ありがとうございます。

いくつもある検索条件のTextBoxを安易にText_chageなどで検索処理を
組み込んでいましたが、もう一度見直し明示的にボタンで処理を発行させるべき
所はそのようにしたいと思います。

ありがとうございました。

[ツリー表示へ]