标题:winfrom中该怎么写验证码程序?求大神..
只看楼主
librayg
Rank: 2
等 级:论坛游民
帖 子:35
专家分:42
注 册:2010-12-1
结帖率:71.43%
已结贴  问题点数:10 回复次数:3 
winfrom中该怎么写验证码程序?求大神..
写过,但是转到winfrom就不会了,对vs不是很熟,一直提示缺少using引用,求大神
搜索更多相关主题的帖子: 验证码 
2012-12-07 14:26
mpi
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:99
专家分:872
注 册:2012-11-14
得分:0 
你使用的是验证码控件么?自己写的话应该引用这个命名空间using System.Drawing.Imaging;


厌烦自私贪婪和不劳而获的人。
厌烦代码各种求,而不思进取的人。
本人也是菜鸟,求上进,踏实不浮躁的朋友共同进步。
2012-12-07 15:25
mmxo
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:189
专家分:1090
注 册:2012-11-7
得分:10 
程序代码:
        using System.Drawing;
        using System.Drawing.Drawing2D;

        public static string CreateCode(int codeLength)
        {
            const string codes = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,j,k,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,M,N,P,Q,R,S,T,U,V,W,X,Y,Z";
            var strArr         = codes.Split(',');
            var result         = "";
            var random         = new Random((int) DateTime.Now.Ticks);
            for (var i = 0; i < codeLength; i++)
                result += strArr[random.Next(0, strArr.Length)];
            return result;
        } 

        public static Bitmap CreateImages(string code)
        {
            var result = new Bitmap(120, 36);
            var g = Graphics.FromImage(result);
            g.Clear(Color.Khaki);
            var random = new Random((int)DateTime.Now.Ticks);
            for (var i = 0; i < 12; i++)
            {
                var x1 = random.Next(result.Width);
                var x2 = random.Next(result.Width);
                var y1 = random.Next(result.Height);
                var y2 = random.Next(result.Height);
                g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);
            }
            var font = new Font("Arial", 25, FontStyle.Bold | FontStyle.Italic);
            var lgb = new LinearGradientBrush(
                new Rectangle(0, 0, result.Width, result.Height), Color.Gray, Color.Black, 1.2f, true);
            g.DrawString(code, font, lgb, 0, 0);
            for (var i = 0; i < 10; i++)
            {
                var x = random.Next(result.Width);
                var y = random.Next(result.Height);
                result.SetPixel(x, y, Color.Black);
            }
            g.DrawRectangle(new Pen(Color.DimGray), 0, 0, result.Width - 1, result.Height - 1);
            return result;
        }


[ 本帖最后由 mmxo 于 2012-12-7 19:00 编辑 ]

为提高中华编程水平而奋斗
2012-12-07 18:57
librayg
Rank: 2
等 级:论坛游民
帖 子:35
专家分:42
注 册:2010-12-1
得分:0 
回复 3楼 mmxo
boss....我要的不是js的代码呀...不过可以了..我尝试自己写看看
2012-12-07 22:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-390023-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.606680 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved