private void CheckIdentifyingCode() {
Random r = new Random();
string str = "";
for (int i = 0; i < 5; i++)
{
int a = r.Next(0, 10);
str += a;//将数字连接到一块
}

Bitmap bm = new Bitmap(150, 90);//创建位图对象
Graphics g = Graphics.FromImage(bm);//在bm中重新画图

//创建字体跟颜色数组
string[] font = { "楷体", "黑体", "宋体", "斜体", "新宋体" };
Color[] colors = { Color.Red, Color.Blue, Color.Green, Color.Yellow, Color.YellowGreen };

//开始画图

for (int i = 0; i < 5; i++)
{
Point p = new Point(i * 20, 0);
g.DrawString(str[i].ToString(), new Font(font[i], 20, FontStyle.Bold), new SolidBrush(colors[i]), p);
}
pictureBox1.Image = bm;//将位图显示到picture上
}

WinForm 实现验证码的更多相关文章

  1. Winform GDI+

    什么是GDI+ GDI (Graphics Device Interface), 是属于绘图方面的 API (Application Programming Interface). 因为应用程序不能直 ...

  2. [Aaronyang] 写给自己的WPF4.5 笔记19[Visual类图文并茂讲解]

    文章虽小,内容还好,且看且珍惜. aaronyang版权所有,不许转载,违者必究 当界面上使用数千个矢量图形,例如实时统计图,粒子碰撞,比如超级玛丽游戏,图像一直在绘,过量的使用WPF的元素系统和Sh ...

  3. C# WinForm 使用SMS接口发送手机验证码+图形验证码+IP限制

    https://blog.csdn.net/IT_xiao_guang_guang/article/details/104299983 前言   1.发送手机验证码用的是网建的SMS接口(http:/ ...

  4. C# WinForm 使用SMTP协议发送QQ邮箱验证码

    文章来自:https://blog.csdn.net/IT_xiao_guang_guang/article/details/104336604 前言   在程序设计中,发送验证码是常见的一个功能,用 ...

  5. C#WinForm 实现登录界面验证码功能(区分大小写+不区分大小写)

    原文:C#WinForm 实现登录界面验证码功能(区分大小写+不区分大小写) 文章来自:https://blog.csdn.net/IT_xiao_guang_guang/article/detail ...

  6. winform之判断验证码,,附加验证码的一般处理程序

    这里用的一般处理程序画的验证码图片. 判断验证码步骤: ①先在一般处理程序中获取验证码(一般处理程序中session的调用→context.Session[]) string code = GetRn ...

  7. [转载]C# winform登陆框验证码的实现

    验证码技术已愈来愈成熟,从最初的数字.字母.字符.汉字已经到目前的语言,其应用也甚广,之前大多数只有在网站上可以看到,现在在一些客户端软件也经常可见(比如证券相关软件).之前做的一个基于 C# 客户端 ...

  8. Winform中产生验证码图片

    1.创建ValidCode类: public class ValidCode { #region Private Fields private const double PI = 3.14159265 ...

  9. 提取验证码到winform上webbroswer和axwebbroswer

    在网上只有webbroswer的代码,所以自己又修改了修改改成axwebbroswer的 public static class yanZhengMaHelp { //webbrowser验证码 pu ...

随机推荐

  1. SQL VS NoSQL 如何选择数据库

    在前一篇文章中我们主要的讨论了SQL与NoSQL数据库之间的主要的差别.接下来,我们将会利用上一篇中的知识来确定在特定的场景中如何确定比较好的选择. 首先我们先来总结一下: SQL数据库: ​使用表存 ...

  2. CSS浮动属性Float到底什么怎么回事,下面详细解释一下

    float 是 css 的定位属性.在传统的印刷布局中,文本可以按照需要围绕图片.一般把这种方式称为“文本环绕”.在网页设计中,应用了CSS的float属性的页面元素就像在印刷布局里面的被文字包围的图 ...

  3. js实现网站导航的二级下拉菜单

    http://www.codesky.net/article/201109/1200js/%E5%AE%9E%E7%94%A8%E5%AF%BC%E8%88%AA%E8%8F%9C%E5%8D%95. ...

  4. 基于SocketAsyncEventArgs的版本

    文字水平差就慢慢开始练习,同时分享一下,项目中写的简单socket程序,不同方式的版本,今天上一个异步.可能实现高性能的处理方式.IOCP就不多说了,高性能的完成端口,可以实现套接字对象的复用,降低开 ...

  5. 【Shell脚本学习5】第一个Shell脚本

    打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了. 输入一些代码: #!/bin/bash ...

  6. Tomcat内存设置详解

    Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...

  7. 如何将你自己的Python package发布到PyPI上

    零.前言 最近做了一个小工具,查询IP或者域名的归属地.做完之后想发布到PyPI上,这样大家就可以通过pip来安装了. 在发布的过程中遇到了一些问题,也学到了很多东西.记录到这篇文章中.希望对大家有所 ...

  8. [课程相关]附加题——stack的理解

    一.stack的三种解释 stack有三种解释,我个人理解如下. 1.用户自定义的stack 用户自定义的stack就是一般意义上的后进先出队列,从名字上就能理解了,stack由下向上增长,有一个顶指 ...

  9. poj 2152 树形DP

    思路:这个没思路,看了陈启峰的论文写得. #include<map> #include<set> #include<cmath> #include<queue ...

  10. 转: 透过CAT,来看分布式实时监控系统的设计与实现

    评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-syste ...