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