【可视化编程】实验3:C#窗体设计及使用

实验目的

  掌握C#MDI窗体设计,一个主窗体、多个子窗体间的切换。掌握窗体中基本的控件设计方法,  labeltextboxgroupboxradiobuttoncomboBoxbutton等。掌握Messagebox的使用方法。

实验内容

  1、设计MDI窗体,一个主窗体,登录子窗体输入用户名和密码(系统设置默认用户登录信息:whut1234),如果用户名密码正确,消息框提示登录成功。如果用户名不正确,提示需先注册。如果密码错误,提示密码有误。

  2、注册子窗体设计,包括用户名、密码、确认密码(textbox)、性别(groupboxradiobutton)、专业(comboBox)等信息。点击“确认”按钮,如果用户名不为空,密码和确认密码一致,提示注册成功,并显示注册信息。否则提示错误信息。点击“重置”按钮,清空控件中的内容。点击“登录”按钮,回到登录窗体。

实验方案

1、新建一个Windows窗体应用,文件名:实验3:窗体设计及使用;

2、将初始生成的项重命名为:BackForm.cs,然后再新建两个项,名字分别为:LoginForm.cs(登陆界面),RegisterForm.cs(注册界面);

3、项BackForm.cs 界面设计如下:

  如上图,重命名是为了好记;在【属性栏】中将BackForm.cs的【ISMDIContainer】属性设置为“True”,该窗体就成为一个MDI父窗体;【Text】属性中输入窗口的名字。

4、LoginForm.cs(登陆界面)界面设计如下:

  将上图各个插件进行重命名操作是为了便于记忆,防止名字类似而记混。
  如果想将密码输入框设置为输入文本不可见格式,可将 UserPassword 控件的【PasswordChar】属性设置为“*”(即输入一个星号)即可。

5、RegisterForm.cs(注册界面)界面设计如下:

  将上图各个插件重命名为如图所示名称。其中将Major控件的【DropDownStyle】设置为“DropDownList”,即该下拉框只能选择而不能输入文字。

实验代码:

将各个控件按照上图命名完毕后,双击需要执行操作的按键,即可进入相应的代码输入框;

1、父窗口界面源代码

  BackForm.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 实验3_窗体设计及使用
{
    public partial class BackForm : Form
    {
        public BackForm()
        {
            InitializeComponent();
            LoginForm loginForm = new LoginForm();
            loginForm.MdiParent = this;
            loginForm.Show();
        }

        private void BackForm_Load(object sender, EventArgs e)
        {

        }
    }
}

2、登陆界面源代码:


  登陆界面,只需要双击【登陆】按键即可进入代码输入界面

详细源代码如下:
  LoginForm.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 实验3_窗体设计及使用
{
 
    public partial class LoginForm : Form
    { 
        public LoginForm()
        {
            InitializeComponent();
        }

        //点击【登录】操作
        private void Login_Click(object sender, EventArgs e)
        {
            //从用户名和密码文本框中读取字符串
            String userName = UserName.Text;
            String userPassword = UserPassword.Text;

            //如果用户没有输入用户名就点击登录按键,提示注册
            if(userName.Length == 0){
                DialogResult result = MessageBox.Show("用户名为空,是否注册新用户?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if(result == DialogResult.Yes)
                {
                    RegisterForm registerForm = new RegisterForm();
                    registerForm.MdiParent = this.MdiParent;
                    registerForm.Show();
                    this.Hide();
                }
            }
            else
            {
                //如果密码框为空
                if (userPassword.Length == 0)
                {
                    MessageBox.Show("请输入密码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    //匹配用户名和密码的正确性,如果正确:
                    if (String.Equals(userName, UserInfo.userName) && String.Equals(userPassword,UserInfo.userPassword)){
                        MessageBox.Show("登录成功!\n欢迎您,"+UserInfo.userName,"提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        this.Hide();
                    }
                    //如果密码错误:
                    else if (String.Equals(userName, UserInfo.userName) && !String.Equals(userPassword, UserInfo.userPassword))
                    {
                        MessageBox.Show("密码错误!","提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    //如果该用户名不存在:
                    else
                    {
                        DialogResult result = MessageBox.Show("该用户不存在,是否注册新用户?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (result == DialogResult.Yes)
                        {
                            RegisterForm registerForm = new RegisterForm();
                            registerForm.MdiParent = this.MdiParent;
                            registerForm.Show();
                            this.Hide();
                        }
                    }
                }
            }

        }
    }

    //全局变量,初始默认用户信息
    static class UserInfo
    {
        public static String userName = "whut";
        public static String userPassword = "1234";
        public static String userSex = "男";
        public static String Major = "计算机学院!";

    }
}

3、注册界面源代码:


只需要双击上图所示的三个按键即可进入相应的代码编辑区:

详细代码如下:

RegisterForm.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 实验3_窗体设计及使用
{
    public partial class RegisterForm : Form
    {
        public RegisterForm()
        {
            InitializeComponent();
        }

        //注册操作
        private void Sure_Click(object sender, EventArgs e)
        {
            if(RUserName.Text.Length == 0)
            {
                MessageBox.Show("请输入用户名!", "提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }
            else
            {
                if(RUserPassword.Text.Length == 0)
                {
                    MessageBox.Show("请输入新密码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else if(RUserPassword2.Text.Length == 0)
                {
                    MessageBox.Show("请确认新密码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else if ( !String.Equals(RUserPassword.Text,RUserPassword2.Text))
                {
                    MessageBox.Show("密码输入不一致!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    //如果已选择性别
                    if(SexM.Checked || SexW.Checked)
                    {
                        if (Major.SelectedIndex != -1)
                        {
                            UserInfo.userName = RUserName.Text;
                            UserInfo.userPassword = RUserPassword.Text;
                            UserInfo.Major = Major.Text;

                            if (SexM.Checked)
                            {
                                UserInfo.userSex = "男";
                            }
                            else
                            {
                                UserInfo.userSex = "女";
                            }

                            MessageBox.Show("注册成功!" +
                                "\n用户名:" + UserInfo.userName +
                                "\n密 码:"+UserInfo.userPassword +
                                "\n性 别:"+UserInfo.userSex +
                                "\n专 业:"+UserInfo.Major, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        }
                        else
                        {
                            MessageBox.Show("请选择专业!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    else
                    {
                        MessageBox.Show("请选择性别!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
        }

        //重置操作
        private void Reset_Click(object sender, EventArgs e)
        {
            RUserName.Text = "";
            RUserPassword.Text = "";
            RUserPassword2.Text = "";
            SexM.Checked = false;
            SexW.Checked = false;
            Major.SelectedIndex = -1;

            UserInfo.userName = "";
            UserInfo.userPassword = "";
            UserInfo.userSex = "";
            UserInfo.Major = "";

            MessageBox.Show("重置成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        //返回登录操作
        private void Back_Click(object sender, EventArgs e)
        {
            LoginForm loginForm = new LoginForm();
            loginForm.MdiParent = this.MdiParent;
            loginForm.Show();
            this.Hide();
        }
    }
}

  注:此代码注册时并没有对用户名和密码的输入字符格式进行限制,可在此基础上加上输入字符的判断方法(如:禁止输入空格或者其他特殊字符,密码长度最低4位等)。

运行结果:

  部分运行界面如上图。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾年之璐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值