验证码颜色,字体

验证码颜色

我前面,写了验证码,简单说了一下验证码颜色不同的设置方法,具体可以看一看我的这篇文章

验证码案例

想要让验证码的每个字符颜色不一样,需要抓住一个思路,那就是:字符本身不能设置颜色,所以要给字符设置颜色需要给字符一个载体,随机生成的验证码是一个字符串,需要给这个字符串的每一个字符都给一个载体,即将生成的字符分别放进一个label里。

这样就引出了一个问题,那就是如何将生成的字符放进label里?

在上一篇文章里我是直接将生成的字符一个一个放进label里,在这一篇,我会从字符串分割字符放进label中

方法一:Split()
Split()是通过括号里的字符来分割字符串的
比如:
有一个字符串string str=ds-afa-slj-kdg-h
string[] sstr=str.Split(’-’)
结果:sstr[0]=ds;sstr[1]=afa;sstr[2]=slj;sstr[3]=kdg;sstr[4]=h;

			Random r = new Random();
            string str = "";
            for (int i = 1; i <= 4; i++)
            {
                int a = r.Next(0, 3);//设置随机0,1,3;判断生成的是数字,小写字母,大写字母
                if (a == 0)
                {
                    str += r.Next(0, 10).ToString() + "-";
                }
                else if (a == 1)
                {
                    str += (char)r.Next(65, 91) + "-";//随机生成大写字母
                }
                else if (a == 2)
                {
                    str += (char)r.Next(97, 123) + "-";//随机生成小写字母
                }

            }
            string[] sstr = str.Split('-');//将字符串分割为数组
            label1.Text = sstr[0];
            label2.Text = sstr[1];
            label3.Text = sstr[2];
            label4.Text = sstr[3];
            label1.ForeColor = Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255));
            label2.ForeColor = Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255));
            label3.ForeColor = Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255));
            label4.ForeColor = Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255));

方法二:Substring
与方法一相同,这种方式也是分割字符串
Substring(x,y)
x,表示从第几个字符开始截取字符,从0开始数
y,表示截取的字符个数,什么数字就是截取几个字符

			Random r = new Random();
            string str = "";
            for (int i = 1; i <= 4; i++)
            {
   
                int a = r.Next(0, 3);//设置随机0,1,3;判断生成的是数字,小写字母,大写字母
                if (a == 0)
                {
   
                    str += r.Next(0, 10).ToString();
                }
                else if (a == 1)
                {
   
                    str += (char)r.Next(65, 91);//随机生成大写字母
                }
                else if (a == 2)
                {
   
                    str += (char)r.Next(97, 123);//随机生成小写字母
                }

            }
            label1.Text = str.Substring(0,1);
            label2.Text = str.Substring(1, 1);
            label3.Text = str.Substring(2, 1);
            label4.Text = str.Substring(3, 1);
            label1.ForeColor = Color.FromArgb(r.Next(0, 255), r.Next(0, 255), r.Next(0, 255));
            label2.ForeColor = Color.FromArgb(r.Next(0, 255)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值