看板 C_Sharp 關於我們 聯絡資訊
現在有二個表單Form1與Form2 還有一個類別 class.cs 在From1輸入的資料 會送到class.cs去做判讀 之後轉往Form2去做運算 Form2會有個數值與class.cs判讀的資料做運算 我想問的是 如何在Form2中保留Form1送往class.cs的判讀資料 因為在Form2中 class one = new class 這樣在Form1的資料就都會被洗掉 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.232.9
tigertiger:指到同一個@@? 05/01 13:02
b9433056:是指到同一個沒錯~ 05/01 14:24
ssccg:在轉Form2的時候把Form1中的class物件傳過去,不要重new一個 05/01 14:58
b9433056:那請問樓上的大大~怎麼轉 05/01 15:01
apiod:Form form2 = new form(class); 05/01 18:48
b9433056:使用樓上的用法~不能解決問題哩 05/01 19:19
james732:我會建議你把目前的程式碼簡化後貼上來,讓大家幫你修改 05/01 19:46
以下為Form1的表單程式碼 public void btnNext_Click(object sender, EventArgs e) { human safe = new human(); safe.age = Convert.ToInt32(txtAge.Text); if (safe.age >= 20 == safe.age <= 120) { this.Hide(); frmSecond f2 = new frmSecond(); f2.Show(); } if (rdbBoy.Checked) { safe.sex = 1; } if (rdbGirl.Checked) { safe.sex = 0; } } 以下為Form2的表單程式碼 public void btnSpreadsheets_Click(object sender, EventArgs e) { double insurance; int price; price = Convert.ToInt32(txtPrice.Text); insurance = price * 0.08 * safe.factory; if (safe.sex == 1) lblResult.Text = "您是男性" + safe.age + "歲, "; if (safe.sex == 0) lblResult.Text = "您是女性" + safe.age + "歲, "; lblResult.Text += "您的保險試算金額為" + insurance + "元。"; } 以下為類別的程式碼 public class human { public double factory; private int _age; public int age { get { return _age; } set { if (value < 20) MessageBox.Show("未滿20歲無法駕車!"); if (value > 120) MessageBox.Show("輸入之年齡有問題!"); _age=value; } } private int _sex; public int sex { get { return _sex; } set { if (value == 1) { if (age >= 20 == age < 30) factory = 1.2; if (age >= 30 == age < 50) factory = 1; if (age >= 50) factory = 0.9; } if (value == 0) { if (age >= 20 == age < 30) factory = 1; if (age >= 30 == age < 50) factory = 0.9; if (age >= 50) factory = 1.2; } _sex = value; } 在Form1裡輸入的數值會傳到類別去做判讀 然後在Form2裡 要把在Form1判讀的延續至Form2中使用 麻煩各位解答 謝謝 ※ 編輯: b9433056 來自: 118.171.232.9 (05/01 19:54)
apiod:在你new form2的時候把class傳過去阿 是哪裡不行? 05/01 20:17
b9433056:說~“型別”不能當變數使用 05/01 20:21
james732:你可以把這個錯誤的相關程式碼貼上來嗎? 05/01 20:22
james732:可以的話把整個專案壓縮後放在免空讓人下載 XD 05/01 20:22
b9433056:程式碼都貼上來了~ 05/01 20:23
b9433056:以上程式碼目前的錯誤在於 05/01 20:27
b9433056:Form2沒辦法判讀在Form1的變數 05/01 20:27
b9433056:在Form2中所有safe.*的變數該怎麼執行才會跟Form1一樣 05/01 20:28
james732:想辦法傳過去囉,看要在建構子傳或另外寫個method傳 05/01 20:29
b9433056:我也是想破頭了才來求救的~拜託了~ 05/01 20:30
james732:如果你把整個專案放在網路上 我就改改看 05/01 20:31
b9433056:這個我就不錯了~去哪找網路空間? 05/01 20:33
b9433056:錯修改為“會”~沒使用過網路硬碟 05/01 20:34
james732:試試看便當狗 http://www.badongo.com/ 05/01 20:34
apiod:便當狗太爛 用mu http://www.megaupload.com/ 05/01 20:35
james732:哈哈 坦白說我也很少用免空 都是丟hinet空間 XD 05/01 20:36
apiod:frmfirst.cs => frmSecond f2 = new frmSecond(safe); 05/01 20:55
apiod:frmSecond.cs ↓ 05/01 20:55
apiod:human safe = new human(); 05/01 20:55
apiod:public frmSecond(human safe) 05/01 20:56
apiod:{ 05/01 20:56
apiod: InitializeComponent(); 05/01 20:56
apiod: this.safe = safe; 05/01 20:56
apiod:} 05/01 20:56
b9433056:感謝二位大大熱心指導 05/01 20:57
※ 編輯: b9433056 來自: 118.171.232.9 (05/01 21:49) ※ 編輯: b9433056 來自: 118.171.232.9 (05/01 22:08)