两个窗口如何实现数据交换
本帖最后由 woyonglabview 于 2013-03-22 11:00:25 编辑 如题,我现在做了一个小程序:第一个窗口中显示用户名和密码,用户名是admin,密码是888888
如果密码和用户名输入正确,则弹出第二个窗口,上面有个按钮,点击的话就会显示第几次才登陆上;如果3次输入不正确,则自动退出。
现在遇到的问题是,主程序中有个变量i是控制输入的次数的,我如何把这个变量i的值,传到Form2中去。下面是我做的程序,请各位高手帮帮忙吧!
Form1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _20110305xiawu4_winform练习点评
{
public partial class Form1 : Form
{
public int i = 0;
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 如果将变量放在里面的话,
/// 每执行一次按键按下,i都会重新变为0,
/// 永远也不可能为3
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnEnter_Click(object sender, EventArgs e)
{
//int i = 0;
if (txtPassword.Text == "888888"&&txtUser.Text=="admin")
{
MessageBox.Show("登陆成功");
Form2 ftr = new Form2();
ftr.Show();
}
else
{
++i;
if (i <= 3)
{
MessageBox.Show("您的密码或用户名输入有误,请重新输入");
}
else
{
MessageBox.Show("输入次数超过三次");
this.Close();
}
}
}
}
}
Form2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _20110305xiawu4_winform练习点评
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void btn2_Click(object sender, EventArgs e)
{
Form1 form = new Form1();
MessageBox.Show(string.Format("哈哈,你试了{0}次才进来", form.i+1));
}
}
}
[解决办法]
嗯?
1.静态变量
2.配置文件
3.数据库
4.....
太多方法了。
[解决办法]
Form2的构造函数改为带参数的,把i传进来。
或者,给Form2一个public属性,new出Form2的时候赋值。
[解决办法]
新建一个类,里边弄个int类型的静态变量,默认为值0.在每次按下登陆按钮的时候,让其自增.登陆成功后,在form2中单击按钮,弹出静态变量的值就OK!