首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

两个窗口怎么实现数据交换

2013-03-27 
两个窗口如何实现数据交换本帖最后由 woyonglabview 于 2013-03-22 11:00:25 编辑如题,我现在做了一个小程

两个窗口如何实现数据交换
本帖最后由 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!

热点排行