c#的winform入门项目,带你用一篇文章熟悉winform

首先说一下总体结构,有登录界面form1,和登录进去的界面index,以及相关的类如下:

文件目录:

c#的winform入门项目,带你用一篇文章熟悉winform_第1张图片

登录界面:

c#的winform入门项目,带你用一篇文章熟悉winform_第2张图片

对于登录、账号、密码都是label标签,如下:

c#的winform入门项目,带你用一篇文章熟悉winform_第3张图片

右下角选中左边界面的标签会出现属性信息:
c#的winform入门项目,带你用一篇文章熟悉winform_第4张图片 

中间两个输入框是TextBox:

 

在右边text属性设置像上面显示的那样,如123。

而下面的注册、登录则是按钮Button:

 大概思路就是在输入框输入值,点击登录能够跳转到index界面:
 

只需要双击登录按钮就能跳转到代码界面进行设置:

public Form1()
        {
            InitializeComponent();

            GlobalFunc globalFunc = new GlobalFunc();
            label1.Text = GlobalFunc.Instance.Name;
        }
private void button2_Click(object sender, EventArgs e)
        {
            //MessageBox.Show("我被点击了");

            //获取账号、密码
            string account=txtAccount.Text;
            string pwd=password.Text;

            //对帐号密码判断是否正确
            //if (account == "123" && pwd == "456")
            //{
            //    MessageBox.Show("账号密码正确,登录成功");
            //}
            //else 
            //{
            //    MessageBox.Show("您输入的账号密码不正确,请重新输入");
            //}

            if (account != "123") 
            {
                MessageBox.Show("账号错误");
                txtAccount.Text = "";
                return;
            }
            if (pwd != "456") 
            {
                MessageBox.Show("密码错误");
                return;
            }
            //全局记录当前账号
            GlobalFunc.Instance.AccountG=account;
            //登录进入index界面,窗体传值通过构造方法
            new Index().Show();

            //可以理解调用form1关闭窗口 
            //this.Hide();//由于设置了全局类GlobalFunc,可以不调用this了

            GlobalFunc.Instance.formLogin.Hide();

 首先对全局类GlobalFunc进行介绍:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LoginLayout
{
    public class GlobalFunc
    {
        private static GlobalFunc _Instance=null;
        /// 
        /// 单例模式全局方法
        /// 
        public static GlobalFunc Instance
        {
            get 
            {
                if (_Instance == null) 
                    _Instance = new GlobalFunc();
                return _Instance;
            }
        }

        //为啥这个Name能被访问
        /// 
        /// 全局账号字段
        /// 
        public string Name = "123";
        /// 
        /// form1登录界面保存
        /// 
        public Form1 formLogin = null;

        public string AccountG = null;

    }
}

利用全局类保存账号、密码,由于单例模式只创建一次,所以账号、密码不变。

index界面

c#的winform入门项目,带你用一篇文章熟悉winform_第5张图片

为计算总价按钮添加点击事件,双击即可生成代码:

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 LoginLayout
{
    public partial class Index : Form
    {
        public Index()
        {
            InitializeComponent();
            //label1.Text = "欢迎" + account;
            //label1.Text = GlobalFunc.Instance.Name;

            label1.Text = GlobalFunc.Instance.AccountG;
        }

        private void Index_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();   //结束启动界面
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string danjia = textBox1.Text;
            string shuliang= textBox2.Text;

            int price = 0,count=0;
            try
            {
                price = Convert.ToInt32(danjia);
                count = Convert.ToInt32(shuliang);
            }
            catch
            {
                MessageBox.Show("单价和数量必须为数字");
                textBox1.Text = "";
                textBox2.Text = "";
                return;
            }
            int zongjia = price* count;
            //int zongjia = int.Parse(danjia) * int.Parse(shuliang);

            label4.Text ="总价:"+ zongjia.ToString();
        }
    }
}

结果:

c#的winform入门项目,带你用一篇文章熟悉winform_第6张图片

注意:这里好多朋友可能在关闭index界面之后程序还在调式过程中,主要要添加关闭时间监听即可:

private void Index_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();   //结束启动界面
        }

 

下面是源代码和笔记:
链接:https://pan.baidu.com/s/1yPvhaG1e-b5czadQFwztEg?pwd=yde6 
提取码:yde6

你可能感兴趣的:(c#项目,c#,开发语言)