→ tstanly:阿 兩個form間的關係 就是form1點某button會出現form2 05/09 23:46
→ tstanly:而設定form2時會用到form1的變數.. 05/09 23:46
我之前也寫過這樣的程式。
我的做法是:
1. 對於 Form2 需要用到的變數,Form1 準備相應的 getter
class Form1
{
public:
string ^ getS()
{
return this->s;
}
private:
string ^s;
}
2. 讓 Form2 的建構子能夠傳進 Form1 並存起來
class Form2
{
public:
Form2(Form1 ^f)
{
form1 = f;
}
foo()
{
string ^s = form1->getS();
// 這樣就可以對這個變數 s 操作了
}
private:
Form1 ^form1;
}
3. 在 Form1 建立 Form2 時,把自己傳進去
Form1裡的某個函式()
{
Form2 ^form2 = gcnew Form2(this);
}
程式碼並不完全正確,參考意思就好
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.63.38
推 tstanly:推好文 不過如果兩個變數以上呢 05/10 00:15
→ tstanly:要寫多個getS? 05/10 00:15
→ james732:那也是個方法 就看你要怎麼變化了 05/10 00:21
推 tstanly:對了 那如果是宣告int i 也可用降傳嗎?因為string是指標 05/10 00:23
→ james732:或許可以直接用 int *getI() {...} 之類的 05/10 00:31
→ james732:老實說我不知道這樣的寫法好不好...oz 05/10 00:31
推 TroyLee:語法看不懂...@@ 05/10 00:35
→ sosokill:多參數應該可以使用struct 05/10 01:13
→ james732:同意樓上,如果要共享的東西太多,就用struct或class包裝 05/10 01:22
→ dove1706:全域變數宣告在c/cpp檔,在h檔全域範圍用extern 05/10 01:49
推 tstanly:回 dov1706,但我是兩個不同.h檔 降會失敗... 05/10 11:56
→ dove1706:原C++可 沒碰CLR或許差別在這 :) 05/10 15:30