作者james732 (好人超)
看板C_Sharp
標題Re: [問題]多表單傳值問題?
時間Sun May 1 20:49:51 2011
frmSecond.cs
public partial class frmSecond : Form
{
public human safe { set; get; }
// 其他都一樣
frmFirst.cs
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.safe = safe;
f2.Show();
}
這應該算是最小幅度的修改了
你的程式還有其他的問題... 不過那就看你需不需要再改吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
1F:推 b9433056:謝啦~目前是可以了~但~有其他的問題? 05/01 20:55
2F:→ b9433056:可以指出來嗎?不怎麼想給老師抓毛病~謝謝 05/01 20:55
其實也不算是很嚴重的問題啦
你的「下一步」跟「上一步」都是用 new xxxform 來做
因此程式會不斷在記憶體裡面產生新的 form
如果你反覆按100次的下一步跟上一步
記憶體裡面就各有100個frmFirst跟frmSecond了
雖然C#有自動回收的機制,因此不必擔心會把記憶體吃到完,但這種寫法總不算很好 XD
※ 編輯: james732 來自: 140.117.171.46 (05/01 21:07)
3F:→ b9433056:那最好的方法是怎麼寫?上課是教這樣哩我也不怎麼清楚 05/01 21:10
如果上課是這麼教的話,那應該就不需要改了 XD
4F:→ b9433056:還有~我想請問一下~如果要強制文字方塊為數字該怎麼寫 05/01 21:11
如果你在文字方塊裡面輸入非數字後按button,應該會出現一些訊息吧?
你可以把這些訊息拿去google找找看要怎麼處理
提示: try {???} catch(???) {???}
※ 編輯: james732 來自: 140.117.171.46 (05/01 21:14)
5F:→ b9433056:如果把那個隱藏hide改為釋放dispose~ 05/01 21:15
6F:→ b9433056:應該就沒有所謂記憶體吃到完的問題吧? 05/01 21:15
我會覺得 Close() 可能比較適合一點
※ 編輯: james732 來自: 140.117.171.46 (05/01 21:17)
7F:推 b9433056:都試過了~這樣會變成整個專案結束~ 05/01 21:19
對耶,我忘記會有這個問題了 XD
※ 編輯: james732 來自: 140.117.171.46 (05/01 21:23)
8F:→ apiod:VB有個IsNumeric函數可以用來判斷字串是否為數字 05/01 21:20
9F:→ b9433056:可是這是C#的程式~VB的函數應該沒辦法拿過來用吧? 05/01 21:22
10F:→ apiod:你只要把 Microsoft.VisualBasic加入參考就可以把它拿來用了 05/01 21:24
11F:→ b9433056:a大說的是不是最上面那排using 05/01 21:31
12F:→ apiod:右邊方案總管裡有個參考,右鍵->加入參考 05/01 21:33