推 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:哈哈 坦白說我也很少用免空 都是丟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)