-1

テストを同時に実行するためにC++/ CLIで複数のWindowsフォームを作成していますが、これは可能ですが、クラス内でプライベートとして定義された変数がありますが、2番目のフォームがそのバージョンの変数に書き込むと、他のすべてのフォームバージョンで上書きされますこの変数の。

array<String^>^args = Environment::GetCommandLineArgs();
             int args1 = System::Convert::ToInt16(args[1]);
             int i;
             #pragma omp parallel for 
              for(i = 0; i < args1; i++)
              {
                Sleep(1000);
                Form1^ form1 = gcnew Form1(i);
                form1->Show();
              }



private ref class Form1 : public System::Windows::Forms::Form
{
private:
static int formnumber;
static SerialPort^ serialPort = gcnew SerialPort();
public:
    Form1(int formnum)
    {
        array<String^>^args = Environment::GetCommandLineArgs();
        formnumber = formnum;
        int a = 65;
        jigid = a + formnum;
        comnumber = formnumber + Convert::ToInt16(args[2]);
        InitializeComponent();
    }
}

2つのフォームを作成すると、2番目のフォームを作成すると1番目のフォームでformnumが上書きされるため、後でフォームで使用するためにformnumは常に1になります。フォームがお互いの変数を上書きできないようにするにはどうすればよいですか?

4

1 に答える 1

1

それらを静的に宣言しないでください!.................................

于 2012-09-10T12:06:39.457 に答える