菜鸟视觉平台开发(一):登录界面

 1、winform控件拖拉拽,基础布局先做好

3个label,一个用作logo,两个用作用户名和密码的标签;

2个textbox,用作输入账户名和密码;

2个button,一个用作登录,一个用作退出;

 设计得有些丑,将就一下,主要是功能完善就OK。

2、控件的自适应设计

双击界面,进入界面的load事件中,将实现控件自适应窗口的主要流程预设好,Form1_Resize和setTag为两个需要自己写的方法。

private void LoadingForm_Load(object sender, EventArgs e)
        {
            this.Resize += new EventHandler(Form1_Resize);//窗体调整大小时引发事件

            X = this.Width;//获取窗体的宽度

            Y = this.Height;//获取窗体的高度

            setTag(this);//调用方法
        }

void Form1_Resize(object sender, EventArgs e)

        {

            float newx = (this.Width) / X; //窗体宽度缩放比例

            float newy = this.Height / Y;//窗体高度缩放比例

            setControls(newx, newy, this);//随窗体改变控件大小


        }

 public void setTag(Control cons)

        {
            foreach (Control con in cons.Controls)

            {

                con.Tag = con.Width + ":" + con.Height + ":" + con.Left + ":" + con.Top + ":" + con.Font.Size;

                if (con.Controls.Count > 0)

                    setTag(con);

            }

        }

        //遍历窗体中的控件,重新设置控件的值
        public void setControls(float newx, float newy, Control cons)
        {
            foreach (Control con in cons.Controls)
            {
                string[] mytag = con.Tag.ToString().Split(new char[] { ':' });//获取控件的Tag属性值,并分割后存储字符串数组
                float a = Convert.ToSingle(mytag[0]) * newx;//根据窗体缩放比例确定控件的值,宽度
                con.Width = (int)a;//宽度
                a = Convert.ToSingle(mytag[1]) * newy;//高度
                con.Height = (int)(a);
                a = Convert.ToSingle(mytag[2]) * newx;//左边距离
                con.Left = (int)(a);
                a = Convert.ToSingle(mytag[3]) * newy;//上边缘距离
                con.Top = (int)(a);
                Single currentSize = Convert.ToSingle(mytag[4]) * newy;//字体大小
                con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit);
                if (con.Controls.Count > 0)
                {
                    setControls(newx, newy, con);
                }
            }
        }

窗口内控件的自适应就完成了,展示下效果:

3、控件发生触发事件的逻辑功能

这里主要是两个功能,一个登录按钮,一个退出按钮。

退出按钮比较简单,直接杀掉进程就可以了:

private void button2_Click(object sender, EventArgs e)
        {
            //退出软件
            System.Environment.Exit(0);
        }

登录按钮的功能也比较简单,无非就是两个子功能。

a、将账户名和密码二者的输入字符串和预设的账号和密码做一个比较,我预设的账号密码和高考里的假如你是Lihua差不多了,都是Admin。

public static class Sys_Info
    {
        //用户信息
        public static readonly string UserName = "Admin";
        public static readonly string PassWord = "Admin";
        public static string Input_UserName = "";
        public static string Input_PassWord = "";
    }

然后是输入和"Admin"的对比功能:

/检测输入账号密码是否正确
        public bool Examination_Name_and_PassWord(string name, string password)
        {
            if (name == "")
            {
                MessageBox.Show("请输入用户名");
                return false;
            }
            else if (password == "")
            {
                MessageBox.Show("请输入密码");
                return false;
            }
            else if (name != Sys_Info.UserName || password != Sys_Info.PassWord)
            {
                MessageBox.Show("用户名或密码错误");
                return false;
            }
            MessageBox.Show("登录成功!");
            return true;

        }

b、登录成功后跳转到主界面:

private void button1_Click(object sender, EventArgs e)
        {
            //登录软件
            bool ret = user.Examination_Name_and_PassWord(Sys_Info.Input_UserName, Sys_Info.Input_PassWord);
            if(ret)
            {
                //设置登录成功状态
                this.DialogResult = DialogResult.OK; 
                this.Close();
            }
        }

这里我将登录按钮里调用了一次判断输入,输入正确后设置登录成功的状态,然后在Main函数中实现一个由登录界面到主界面的跳转

static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            LoadingForm loadingForm = new LoadingForm();
            //打开登录界面
            if (loadingForm.ShowDialog() == DialogResult.OK)
            {
                //登录成功后打开主界面
                MDIParent1 mainForm = new MDIParent1();
                Application.Run(mainForm);
            }
        }


winform小白的博客,欢迎各位大佬点评指正!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值