作者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