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

2024-01-14 15:38

本文主要是介绍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

剩下的直接调用即可.

 

转载于:https://www.cnblogs.com/zJuevers/p/7931803.html

这篇关于2017年11月30日 C#TreeNode递归邮箱验证新用户窗体的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/605668

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

easyui 验证下拉菜单select

validatebox.js中添加以下方法: selectRequired: {validator: function (value) {if (value == "" || value.indexOf('请选择') >= 0 || value.indexOf('全部') >= 0) {return false;}else {return true;}},message: '该下拉框为必选项'}