tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルVB6 Enabledの値が勝手に変更されます。
記事No16241
投稿日: 2016/06/15(Wed) 16:14
投稿者たまご
よろしくお願いします。

VB6でチェックボックスを一つ作成しました。
オブジェクトのプロパティを確認した段階では、Enabledはtrueです。

それなのに、プログラムを記述して実行してみるとEnabledがfalseになってしまいます。

1行ずつデバックするようにしてみると、プログラムが動き出した瞬間くらいにはすでにfalseになっているようです。

いったい何が起きているのかまったく判りません。

どうすればちゃんとtrueのまま動いてくれるようになりますでしょうか。

[ツリー表示へ]
タイトルRe: VB6 Enabledの値が勝手に変更されます。
記事No16242
投稿日: 2016/06/15(Wed) 16:27
投稿者魔界の仮面弁士
> それなのに、プログラムを記述して実行してみるとEnabledがfalseになってしまいます。

たとえば、モーダルフォーム(vbModal)を表示していたりはしないでしょうか。

子フォームをモーダル表示している場合、子フォームが表示された時点で
その親フォームおよび親フォーム上のコントロールは、すべて
Enabled プロパティが False を返すようになります。

モーダル表示されている子フォームが閉じられる(非表示またはアンロード)と
親画面の Enabled も、元の値に戻る仕様です。


もしも上記に心当たりが無い場合は、
 [デバッグ]-[ウォッチ式の追加]
を使い、
 式:Check1.Enabled
 プロシージャ:すべてのプロシージャ
 モジュール:対象のフォーム
 ウォッチの種類:式の内容が変化した時に中断
を仕掛けておき、どこで一時停止するのかを追跡してみると
何か分かるかもしれません。

[ツリー表示へ]
タイトルRe^2: VB6 Enabledの値が勝手に変更されます。
記事No16244
投稿日: 2016/06/15(Wed) 17:18
投稿者たまご
魔界の仮面弁士さま、返信ありがとうございます。

プログラムが動かなかったのが他に原因があったと書きましたが、
もしかしたらそのせいだったのかもしれません。

本当に何が起きているのかまったくわからず、
いっそのことオブジェクトを作り直してみようとおもい、実際に作り直してみたところ、
いきなり直りました。

最初に作ったチェックボックスは、何かのオブジェクトの真上で作成してみたのですが、
もしかするとそれで親子関係になってしまったのかもしれません。
そのとき、チェックボックスを移動させたときに真下のオブジェクトの上から移動させると
見えなくなるようになっていて、おかしいとは思ったのですが素人すぎてスルーしていました。

次回から気をつけるようにいたします。
ありがとうございました。

[ツリー表示へ]
タイトルRe: VB6 Enabledの値が勝手に変更されます。
記事No16243
投稿日: 2016/06/15(Wed) 17:11
投稿者たまご
すみません。自己解決しました。

別に変化してもあまり関係ないのですね。。
プログラムが正しく動かなかったのは他に原因があったみたいです。

[ツリー表示へ]