重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VB6でのCheckBoxのCaptionの表示について

VB6の中でCheckBoxを使用しています。
しかし、Caption(表示項目)が毎回異なる為に
プロパティ内で設定することが出来ず、
ソースにて表示させています。

ちなみに複数台にてそのVBで作ったシステムを稼働しています。
それが今までは問題なく表示されていたのですが、
最近になって全ての機械でもないし、毎回ではないのですが、
Captionが表示されないという現象が時々発生するようになりました。

そこで初歩的ではありますがCaptionに項目名を設定する前に
Refreshを書き足しましたが状況は変わりません。

他に原因として考えられることはありますか?
お分かりになる方がいたら回答よろしくお願い致します。

ちなみに上記の「最近になって」という記述ですが
PCの入替と同時に発生するようになりました。
また、PCのOSはXPから7に変更しています。
但し、入替と同時に追加したプログラムではありますが、
全く同じプログラムを以前(XP機)も別の箇所で使用していましたが
このような現象は一度も起きたことありませんでした。

以下にソースを記述します。

---------------------------------------------------------------------------------
Dim T1 As Integer
Dim T2 As String * 7

T2 = Trim(T114) + "/" + Right$(Space$(2) + Format((T115), "00"), 2)
For T1 = 101 To 112 Step 1
フォーム名.Refresh
CH(T1).Caption = Trim(T2)
CH(T1).Enabled = True

T2 = Trim(Mid$(T2, 1, 4)) + "/" + Right$(Space$(2) + Format(Mid$(T2, 6, 2) + 1, "00"), 2)
If Mid$(T2, 6, 2) = 13 Then T2 = Trim(T114 + 1) + "/" + "01"
Next T1
---------------------------------------------------------------------------------

一応、捕捉しますと
CH=CheckBoxのオブジェクト名
T114=西暦が入力されているTextBox(ImText)
T115=月が入力されているTextBox(ImText)
となっております。

A 回答 (3件)

ANo.1の続きです。



RefreshはやはりCaptionを設定した後に実行しますが、Forの中だともう一つ問題があります。

この場合は 101~112 ですからたいした問題にはなりませんが、Forの中ではCPUを他のプロセスに渡しませんので、処理によっては DoEvents を入れる必要があります。

これを忘れると For の中を処理中には他のプロセスが処理されないため、例えば、For の処理を中断するためのフラグを他で立てて、Forの中で判定するような場合に、そのフラグが渡ってきません。

Refreshの変わりに DoEventsでもいいかもしれません。
    • good
    • 0
この回答へのお礼

重ね重ねありがとうございます!
今のところはsamtomsan様にアドバイス頂いた方法で
現象が発生しておりません。
このまま再び発生しないことを願いたいところです。

お礼日時:2010/07/23 11:40

もしかすると、表示領域が狭いために文字列幅が広い場合にCaptionが表示されないということですかね?


CheckBoxの幅を広げてみてはどうでしょうか。

同じ事象に遭遇したことはないので、勘です。

この回答への補足

早速の回答ありがとうございます。
ですが、CheckBoxの幅は余るほど取ってあります。
けれど今後の参考にしたいと思います。

補足日時:2010/07/22 17:21
    • good
    • 0

> Captionに項目名を設定する前に


> Refreshを書き足しましたが状況は変わりません

項目名を設定した後にRefreshだと思いますが、いかがでしょうか。
    • good
    • 0
この回答へのお礼

本文にも書きました通り、症状が出るのは
特定のPCではないですし、毎回ではないので、
すぐに結果が分かりませんが試してみたいと思います。
回答ありがとうございました!

お礼日時:2010/07/22 17:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!