-2

Form1.h と Form2.h があります

Form1 のボタンをクリックして Form2 を起動するため、Form1.h には既に Form2.h が含まれています。Form1.h から Form2.h に変数を渡す方法

Form1.h の例を次に示します。

#include "Form2.h"

String^ str = "Hello World"; //This variable needs to be passed to Form2.h

//Other windows forms application code here

Form2.h の例

//#include "Form1.h" this will cause an error

//How would i pass variable str to here?

//Other windows forms application code here

編集:

これが私がそれを修正した方法です

これが私がそれを修正した方法です。

Form1.h

#include "Form1.h"

Form2^ frm = gcnew Form2;
frm->Username = "text here";//This passes the variables.
frm->Password = "other text";

Form2.h

public: String^ Username;
public: String^ Password;
4

3 に答える 3

1

あなたが何を求めているのか正確にはわかりませんが、 Form1クラス内からForm2クラスに変数を設定したいと思いますか? もしそうなら:

class Form1{
  private:
    int data;
  public:
    Form1(){data=4;}
    int getData(){return data;}  //returns Form1 data variable
    void setForm2Data(Form2&);   //sets Form2 data
};

class Form2{
  private:
    int data;
  public:
    void setData(int inData){data = inData;}
};

void Form1::setForm2Data(Form2 &o){
  o->setData(getData());  //argument is a Form2 object, "setData" can set that objects data variable
}
于 2013-03-30T02:55:11.850 に答える
0

いくつかの方法があります.. 1 つはグローバル変数を使用することです (必ずしも最良の方法ではありません.. ケースごとに異なります)

まず、 include guardを使用して複数包含の問題を解決できます。

次に、ヘッダーで extern キーワードを使用してグローバル変数を宣言し、実装ファイルに値をプラグインできます。

例えば:

//file: mylib.h
#ifndef MYLIB_H
#define MYLIB_H
extern int myGlobalVar;
#endif

//file: mylib.cpp
#include "mylib.h"
int myGlobalVar = 123;

これ#include "mylib.h"で、他のファイルのどこでも好きなだけ何度でも同じ変数にアクセスできます

于 2013-03-30T03:49:13.207 に答える