C#验证码随机字体,颜色以及大小

一.验证码的随机获取
 Random p = new Random();
             //获取随机字符
            string zf = "";
            for (int i = 0; i < 4; i++)
            {
                int type = p.Next(0, 3);
                if (type == 0)
                {
                    zf += p.Next(0, 10).ToString();
                }
                if (type == 1)
                {
                    zf += ((char)p.Next(97, 123)).ToString();
                }
                if (type == 2)
                {
                    zf += ((char)p.Next(65, 91)).ToString();
                }
            }
二.随机颜色设置
forecolor:获取或设置控件的前景色;
fromargb:三原色,取值范围 0~255;
 //设置颜色随机
            label1.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            label2.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            label3.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            label4.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
三.随机字体以及大小
//设置字体随机
            string[] zt = { "宋体 ", "楷体", "草书", "华文行楷", "华文隶书" };//存储字体的数组
            label1.Font = new Font(zt[p.Next(5)], p.Next(18, 30), FontStyle.Italic);
            label2.Font = new Font(zt[p.Next(5)], p.Next(18, 30), FontStyle.Bold);
            label3.Font = new Font(zt[p.Next(5)], p.Next(14, 30), FontStyle.Strikeout);
            label4.Font = new Font(zt[p.Next(5)], p.Next(15, 28), FontStyle.Underline);

三.验证码完整代码

Random p = new Random();
       private void button2_Click(object sender, EventArgs e)
        {
            button2.Text = "看不清,换一张!";
            button2.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            button2.BackColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            //获取随机字符
            string zf = "";
            for (int i = 0; i < 4; i++)
            {
                int type = p.Next(0, 3);
                if (type == 0)
                {
                    zf += p.Next(0, 10).ToString();// +','分割字符专用
                }
                if (type == 1)
                {
                    zf += ((char)p.Next(97, 123)).ToString();// +','分割字符专用
                }
                if (type == 2)
                {
                    zf += ((char)p.Next(65, 91)).ToString();// +','分割字符专用
                }
            }
            //第一种方法:截取字符串
            //string str0 = zf.Substring(0, 1);
            //string str1 = zf.Substring(1, 1);
            //string str2 = zf.Substring(2, 1);
            //string str3 = zf.Substring(3, 1);
            //label1.Text = str0;
            //label2.Text = str1;
            //label3.Text = str2;
            //label4.Text = str3;
            //第二种方法:获取字符串的长度,分割字符
            //string[] zfc = zf.Split(',');
            //label1.Text = zfc[0];
            //label2.Text = zfc[1];
            //label3.Text = zfc[2];
            //label4.Text = zfc[3];
            //第三种方法:字符串索引
            label1.Text = zf[0].ToString();
            label2.Text = zf[1].ToString();
            label3.Text = zf[2].ToString();
            label4.Text = zf[3].ToString();
            //设置位置
            label1.Left = button2.Left + button2.Width;
            label2.Left = label1.Left + label1.Width;
            label3.Left = label2.Left + label2.Width;
            label4.Left = label3.Left + label3.Width;
            //设置颜色随机
            label1.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            label2.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            label3.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            label4.ForeColor = Color.FromArgb(p.Next(0, 255), p.Next(0, 255), p.Next(0, 255));
            //设置字体随机
            string[] zt = { "宋体 ", "楷体", "草书", "华文行楷", "华文隶书" };//存储字体的数组
            label1.Font = new Font(zt[p.Next(5)], p.Next(18, 30), FontStyle.Italic);
            label2.Font = new Font(zt[p.Next(5)], p.Next(18, 30), FontStyle.Bold);
            label3.Font = new Font(zt[p.Next(5)], p.Next(14, 30), FontStyle.Strikeout);
            label4.Font = new Font(zt[p.Next(5)], p.Next(15, 28), FontStyle.Underline);
        }
原创文章 36 获赞 31 访问量 2082

猜你喜欢

转载自blog.csdn.net/qq_45096273/article/details/105603052