2017年11月30日 C#TreeNode递归&邮箱验证&新用户窗体

TreeNode递归

递归:自己调用自己一层一层的把数据找出来

TreeNode:可以创建多个节点

  private void button1_Click(object sender, EventArgs e)
        {
            dataBind("0001", treeView1.Nodes);
        }

        public void dataBind(string code, TreeNodeCollection tnc)
        {
            foreach (ChinaStates cs in list)
            {
                if (cs.ParentAreaCode == code)
                {
                    TreeNode tn = new TreeNode(cs.AreaName);
                    tn.Tag = cs.AreaCode;

                    dataBind(cs.AreaCode, tn.Nodes);

                    tnc.Add(tn);
                }
            }
        }

        string tname = "";

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            tname = "";
            getData(treeView1.SelectedNode);
            MessageBox.Show(tname.Substring(0, tname.Length - 3));
        }

        public void getData(TreeNode tn)
        {
            if (tn.Parent != null)
            {
                getData(tn.Parent);
            }
            tname += tn.Text + " | ";
        }

邮箱验证(往邮箱里发验证码)

首先要引用命名空间

using System.Net;
using System.Net.Mail;

然后在按钮里面写点击事件或者在别的里面写点击事件也可以

        //创建一个空的字符串
        string a = "";
        private void skinButton1_Click(object sender, EventArgs e)
        {
            //创建服务器对象
            SmtpClient smt = new SmtpClient("这里是域名");
            //创建发件人对象
            MailAddress my = new MailAddress("这里是发件人的邮箱");
            //创建收件人对象
            MailAddress you = new MailAddress("这里是收件人的邮箱");
            //创建邮件的对象,构造函数中传入发件人和收件人
            MailMessage mail = new MailMessage(my, you);//最后扔进这里面去
            //设置邮箱标题
            mail.Subject = "这是标题";
            //创建随机验证码
            string a1 = "abcdefghigklmnopqrstuvwxyzABCDEFGHIKIMNOPQRSTUVWXYZ0123456789";
            Random b = new Random();
            for (int i = 0; i <= 4; i++)
            {
                a += a1.Substring(b.Next(0, a1.Length), 1);
            }
            //设置邮箱内容
            mail.Body = "验证码为:" + a;
            //创建互联网安全证书
            NetworkCredential nwcd = new NetworkCredential("发件人邮箱", "发件人邮箱的密码");
            //将证书绑定到服务器对象上,服务器验证
            smt.Credentials = nwcd;
            //发送验证码
            smt.Send(mail);
            //判断是否能走到这个地方,走到了就表示发送成功
            MessageBox.Show("发送成功!");
        }

        private void skinButton2_Click(object sender, EventArgs e)
        {

            //利用第二个TextBox判断是否输入的验证码正确
            if (skinTextBox2.Text == a)
            {
                MessageBox.Show("验证成功");
            }
            else
            {
                MessageBox.Show("失败");
            }
        }

Timer控件

可以在用户点击完获取验证码之后开启倒计时

 private void timer1_Tick(object sender, EventArgs e)
        {
            time--;
            button2.Text = "发送(" + time.ToString() + ")";

            if (time <= 0)
            {
                button2.Text = "发送";
                button2.Enabled = true;
                timer1.Enabled = false;
            }
        }

新用户窗体

直接在解决方案下添加用户窗体即可,注:用户窗体里面的Designer.cs组件设计器生成的代码下面的private一定要改成pubilc

剩下的直接调用即可.

时间: 2024-10-10 20:01:02

2017年11月30日 C#TreeNode递归&邮箱验证&新用户窗体的相关文章

2017年3月30日上午学习日志

2017年3月30日上午复习了高等数学,学习高等数学教材书第二章第一节导数概念,并按照自己的思路记笔记,并背英语单词及其语法.

2017年6月30日~1日,杨学明老师为武汉某著名通信企业提供内训课程服务!

2017年6月30日~7月1日,杨学明老师为武汉某著名通信企业提供内训课程服务!参加此次培训的学员全部为产品经理和项目经理.部门经理,杨学明老师分别从市场管理和产品规划.产品需求管理.研发项目管理等多个维度对项目管理的知识点进行了分享.培训结束后,许多学员代表纷纷表示将引入杨老师更多的咨询和培训服务.

Linux 系统磁盘分区知识(2017年8月30日 11:47:02)

Linux分区知识 主分区,扩展分区,逻辑分区 1.一块硬盘最多可以有4个主分区(primary),其中一个主分区的位置可以用一个扩展分区(extend)替换,只能有一个扩展分区,扩展分区内可以划分多个逻辑分区(L). 2.如果规划的分区数量超过四个:则分区组合为3primary+1extend 或 2p+1e 或1p+1e. 3.一块磁盘最多只能由一个扩展分区,扩展分区不能直接使用,必须在扩展分区上划分逻辑分区,然后格式化(创建文件系统),之后才能存数据或者装系统. -

2017年11月3日 VS三大类&amp;数组&amp;VS&amp;集合&amp;泛型集合

三大类 共分为两个大类: 基本数据型&引用类型 基本数据型---值类型---整型---常用的整型: Int , 长整型:  Long, 小整型: byle, 中整型 short --浮点型 -- 小浮点: float , 中浮点: double 大浮点: declaml --布尔型 -- bool(对错类型) -- ture||false --字符型 -- char(单一字符) 引用类型 -- 字符串 -- string -- 时间日期 -- DateTime 数组 // 必须规定类型,必须规定

2017年11月1日刷题记录 | 普及组

写在前面 哇Cys好菜啊! 哇Cys连普及组都不会打了啊! 哇要Noip了好紧脏啊! 哇Cys要开始刷题了 然后重点是Cys好菜菜菜菜菜菜啊!!!! 以下题目来自题库比赛 Task-1  A-B 题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的A+B Problem,改用A-B了哈哈! 好吧,题目是这样的:给出一串数以及一个数字C,要求计算出所有A-B=C的数对的个数.(不同位置的数字一样的数对算不同的数对) 输入输出格式 输入格式: 第一行包括2个非负整数N和

11月30日站立会议

小组名称:飞天小女警 项目名称:礼物挑选小工具 小组成员:沈柏杉(组长).程媛媛.杨钰宁.谭力铭 代码地址:HTTPS:https://git.coding.net/shenbaishan/gift-selection.git SSH:[email protected]:shenbaishan/gift-selection.git 会议时间:2016-11-29 13:00-----13:30 会议地点:本部研究生教学楼一楼大厅 会议内容: 一.已完成项: ①bug统计报告--沈柏杉 ②录制fi

Linux全安装(2017年8月30日 17:26:13)

1.创建boot分区 2.创建swap分区 3.根分区 4. 5.格式化 6.写入分区表 7.选择引导模式 8.root密码设置 9.安装包的选择 选择"Minimal"---"customize now" 自定义安装包组选择界面2 提示: 1.根据经验,选择安装包时应该按最小化原则,即不需要的或者不确定是否需要的就不安装,这样可以最大程度上确保系统安全. 2.如果安装过程落了部分包组或者其他伙伴安装时没选,再安装后可以按如下方式补上安装时未安装的包组: yum g

11月30日 四种网卡配置,三种防火墙配置

四种方式配置网卡 1.1 [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736   查找网卡配置文件 HWADDR=00:0C:29:44:05:A7   网卡物理地址(mac地址) TYPE=Ethernet   网卡类型:以太网 BOOTPROTO=dhcp   网卡地址获取方式三种:静态,动态,默认.现在是动态获取,改为none. DEFROUTE=yes PEERDNS=yes PEERRO

2017年3月30日 课堂笔记