[問題]多表單傳值問題?

看板C_Sharp作者 (阿哩唷 ^.^ )時間14年前 (2011/05/01 12:22), 編輯推噓1(1031)
留言32則, 5人參與, 最新討論串1/2 (看更多)
現在有二個表單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

05/01 13:02, , 1F
指到同一個@@?
05/01 13:02, 1F

05/01 14:24, , 2F
是指到同一個沒錯~
05/01 14:24, 2F

05/01 14:58, , 3F
在轉Form2的時候把Form1中的class物件傳過去,不要重new一個
05/01 14:58, 3F

05/01 15:01, , 4F
那請問樓上的大大~怎麼轉
05/01 15:01, 4F

05/01 18:48, , 5F
Form form2 = new form(class);
05/01 18:48, 5F

05/01 19:19, , 6F
使用樓上的用法~不能解決問題哩
05/01 19:19, 6F

05/01 19:46, , 7F
我會建議你把目前的程式碼簡化後貼上來,讓大家幫你修改
05/01 19:46, 7F
以下為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)

05/01 20:17, , 8F
在你new form2的時候把class傳過去阿 是哪裡不行?
05/01 20:17, 8F

05/01 20:21, , 9F
說~“型別”不能當變數使用
05/01 20:21, 9F

05/01 20:22, , 10F
你可以把這個錯誤的相關程式碼貼上來嗎?
05/01 20:22, 10F

05/01 20:22, , 11F
可以的話把整個專案壓縮後放在免空讓人下載 XD
05/01 20:22, 11F

05/01 20:23, , 12F
程式碼都貼上來了~
05/01 20:23, 12F

05/01 20:27, , 13F
以上程式碼目前的錯誤在於
05/01 20:27, 13F

05/01 20:27, , 14F
Form2沒辦法判讀在Form1的變數
05/01 20:27, 14F

05/01 20:28, , 15F
在Form2中所有safe.*的變數該怎麼執行才會跟Form1一樣
05/01 20:28, 15F

05/01 20:29, , 16F
想辦法傳過去囉,看要在建構子傳或另外寫個method傳
05/01 20:29, 16F

05/01 20:30, , 17F
我也是想破頭了才來求救的~拜託了~
05/01 20:30, 17F

05/01 20:31, , 18F
如果你把整個專案放在網路上 我就改改看
05/01 20:31, 18F

05/01 20:33, , 19F
這個我就不錯了~去哪找網路空間?
05/01 20:33, 19F

05/01 20:34, , 20F
錯修改為“會”~沒使用過網路硬碟
05/01 20:34, 20F

05/01 20:34, , 21F
試試看便當狗 http://www.badongo.com/
05/01 20:34, 21F

05/01 20:35, , 22F
便當狗太爛 用mu http://www.megaupload.com/
05/01 20:35, 22F

05/01 20:36, , 23F
哈哈 坦白說我也很少用免空 都是丟hinet空間 XD
05/01 20:36, 23F

05/01 20:55, , 24F
frmfirst.cs => frmSecond f2 = new frmSecond(safe);
05/01 20:55, 24F

05/01 20:55, , 25F
frmSecond.cs ↓
05/01 20:55, 25F

05/01 20:55, , 26F
human safe = new human();
05/01 20:55, 26F

05/01 20:56, , 27F
public frmSecond(human safe)
05/01 20:56, 27F

05/01 20:56, , 28F
{
05/01 20:56, 28F

05/01 20:56, , 29F
InitializeComponent();
05/01 20:56, 29F

05/01 20:56, , 30F
this.safe = safe;
05/01 20:56, 30F

05/01 20:56, , 31F
}
05/01 20:56, 31F

05/01 20:57, , 32F
感謝二位大大熱心指導
05/01 20:57, 32F
※ 編輯: b9433056 來自: 118.171.232.9 (05/01 21:49) ※ 編輯: b9433056 來自: 118.171.232.9 (05/01 22:08)
文章代碼(AID): #1DlE0SxM (C_Sharp)
文章代碼(AID): #1DlE0SxM (C_Sharp)