VB6SP5 Win2000で開発をしております。
質問ですがあるAPで、以下のようなコードを書いて実行すると
Debug.Print "ロック前" & Text1.IMEMode
Text1.Locked = True
Debug.Print "ロック後" & Text1.IMEMode
ロック前は4でロック後には3になってしまいます。
なぜなのでしょうか?
テスト用にテキストボックス1個とコマンドボタンにこのコードを書いただけの
APだと、ロック前は4でロック後には4になっています。
何に違いがあるのでしょうか?
ちなみに、最初はIMEMODEを全角ひらがなにしています。
説明の追加です。
SQLの結果をLOOPさせて画面に表示しています。
表示が終わった後に
Debug.Print "ロック前" & Text1.IMEMode
のコードが来るわけです。
このコードの所にブレークポイントを置いて、
一回停めてから行実行していくとIMEmodeは変わる事無く
ロック前は4でロック後には4になっています。
なので、LOOPの終わりにDおEventsを入れてみましたが
ロック前は4でロック後には3でした。
どうすれば解決できるのでしょうか?
同じ環境でしたが、再現しませんでした。
再現する、最小限のコードを載せてもらえますか?
一応以下のような流れになっています。
自分でも再現できないので、本当に原因がわかりません・・・
'/* 倉庫Master検索 */
nRet = SelectMhiksok(rsMst, Trim$(txtYomi.Text), True)
Select Case nRet
Case C_RET_TRUE, C_RET_STOP
'/* フレックスグリッドにData表示 */
Call GridDispData(rsMst)
'レコードセット解放
Call COM_CloseObject(rsMst)
Debug.Print "ロック前" & txtYomi.IMEMode
'/* Lock */
txtYomi.Locked = True
' txtYomi.IMEMode = 4
Debug.Print "ロック後" & txtYomi.IMEMode
ImeModeに対して何かをしているロジックを書いてはいないのですが
、何故ImeModeが変わってしまうのでしょうか?