2

Visual Basic で記述されたプロジェクトを C# に移行しています。

VB でのフォームのロード中に、フォームのコントロールを使用する関数を実行すると、正しく動作します。

ただし、C# で Form Load 中に同じ関数を実行すると、0 コントロールが検出されるため、関数は機能しません。では、VB と C# でコントロールが作成され、割り当てられるのはどの時点でしょうか?

Visual Basic のコード:

新しいフォーム

Set Abertura(MiTag) = New aFrmAberturas
        Case 32, 4, 7, 28 ' "VIDRIOS" '"ACRÍLICOS" '"CIEGOS", 28 '"TELA MOSQUITERA"
            Set Abertura(MiTag) = New aFrmManualVi

フォームロード中の私の機能

If Abertura(MiTag).LblRev1(1) = "Tela Mosquit" Then
   .inter1(1, MHA) = "Vidrio Simple"
     cambio = True
 End If      

IF での Controls.Count

?aModule1.Abertura(MiTag).Count  165 

C# でのコード

新しいフォーム

aModule1.Abertura[aModule1.MiTag] = new aFrmAberturas();                        
                    break;
                case 32 : case 4 : case 7 : case 28 :  // "VIDRIOS" '"ACRÍLICOS" '"CIEGOS", 28 '"TELA MOSQUITERA" 
                    aModule1.Abertura[aModule1.MiTag] = new aFrmManualVi(); 

フォームロード中の私の機能

if (Convert.ToString(((dynamic) aModule1.Abertura[aModule1.MiTag])._LblRev1_) == "Tela Mosquit")
            {
                aModule1.Vars[aModule1.MiTag].Inter1[1, aModule1.MHA] = "Vidrio Simple";
                cambio = true;
            }

IF での Controls.Count

aModule1.Abertura[aModule1.MiTag].Controls.Count 0

VB: フォームの宣言は次のとおりです。

VB: これは、フォームの読み込み中の関数であり、フォームの Controls.Count

C#: フォームの宣言は次のとおりです。

C#: これは、フォームの読み込み中の関数であり、フォームの Controls.Count

4

0 に答える 0