2012-03-22 16 views
0

VB6で書かれたフォームウィンドウをデバッグしようとしています。アドレスフィールドにアドレスを入力できるように、顧客データを入力することです。 90210メインストリートのようなものを入力することもできます。入力すると、自動的にテキストが解析され、下の郵便番号フィールドに90210と書かれ、メインストリートはアドレスフィールドに表示されます。しかし、それは時々それを間違って解析することができます、これは私が修正しようとしているものです。何かが入力されてもTextBox.text値が空です

問題は、正確に設定されているかどうかわかりません。テキストボックスのアドレスフィールドに何かを入力して実行すると、

?ADDRESS.text 

イミディエイトウィンドウでは、空の文字列が返されます。また、フォームの下のドロップダウンリストを見ると、定義されている関数は1つだけです。しかし、私はそれにブレークポイントを設定し、テキストボックスをクリックすると、それは壊れない。これはGotFocus()イベントです。

Private Sub ADDRESS_GotFocus() 
    Call GCui.BM(ADDRESS) 
End Sub 

POSTALCODEテキストボックスと同じです。 DblClick、GotFocus、LostFocusイベント関数が定義されています。しかし、いずれかのブレークポイントを設定しても効果はありません。

メインストリートまたは90210の値がどこに保存されているかを調べる方法はありますか?これらは、ADDRESSテキストボックスとPOSTALCODEテキストボックスにはっきりと表示されますが、値を要求するときは、イミディエイトウィンドウに空の行が返されます。

アップデート1:

誰かが完全に新しいコントロールでフォームを再構築することを決めたようです。これはおそらくform.loadで起こります。しかし、文字列 "Main Street"または "90210"を見つけるために変数値を検索する方法があるかどうかを知りたいです。

アップデート2:

それは互いの上に2つのフレームがあることが判明しました。トップフレームは起動時に隠され、ボトム(同じラベルとコントロールを持つほぼ同じフレーム)が表示されます。

答えて

2

「時計」機能を使用できます。これにより、フォーム内のすべてのプロパティと、フォーム内のすべてのコントロールとその値(コントロールノードを参照)を調べることができます。

これは、form.controlsコレクションをループすることでコードで行うこともできます。

Dim o As Object 
For Each o In Me.Controls 
    If TypeOf o Is TextBox Then 
     Debug.Print o.Text 
    End If 
Next 
+1

ADDRESS.Text(または実際のコントロールの名前が何であれ)が変更されたときに時計を追加して破損させることができます。 –

関連する問題