界面很難看。壹個picturebox,壹個textbox,壹個button按鈕主要是想先實現功能,萬壹以後業務上需要用到。
實現未來功能圖。
在文本框中輸入相應的文字,點擊確定確認,正確的時間如圖。
如果驗證失敗,沒有提示,直接更新驗證碼。當然,當妳需要使用的時候,按照業務邏輯就可以了。這個比較簡單。
首先,使用隨機函數生成驗證碼字符串。
第二:在picturebox中繪制字符串。
三、點擊圖片刷新驗證碼。
第四個驗證碼不區分大小寫。
或區分大小寫。
此時完成
源代碼:
使用系統;
使用系統。集合。泛型;
使用系統。組件模型;
使用系統。數據;
使用系統。繪圖;
使用系統。Linq
使用系統。文本;
使用系統。Windows . Forms
名稱空間suijima
{
公共分部類表單1:表單
{
公共表單1()
{
initialize component();
}
//驗證碼的長度
private const int iveriycodelength = 6;
//驗證碼
私有字符串strVerifyCode =
//匹配字符的臨時變量
string strTemp =
私有void btnUpdate_Click(對象發送方,EventArgs e)
{
UpdateVerifyCode();
}
私有void Form1_Load(對象發送方,EventArgs e)
{
UpdateVerifyCode();
}
//更新驗證碼
私有void UpdateVerifyCode()
{
strVerifyCode = CreateRandomCode(iVerifyCodeLength);
if(strVerifyCode== " ")
{
返回;
}
strTemp = strVerifyCode
create image(strVerifyCode);
}
//生成驗證碼字符串
私有字符串CreateRandomCode(int iLength)
{
int rand
字符代碼;
string randomCode = String。空的;
//生成壹定長度的驗證碼
系統。Random Random = new Random();
for(int I = 0;我& ltiLengthi++)
{
rand =隨機。next();
if (rand % 3 == 0)
{
code =(char)(' A '+(char)(rand % 26));
}
其他
{
code =(char)(' 0 '+(char)(rand % 10));
}
randomCode +=代碼。ToString();
}
返回randomCode
}
///?創建驗證碼圖片
私有void CreateImage(字符串strVerifyCode)
{
嘗試
{
int iRandAngle = 45//隨機旋轉角度
int IMAP width =(int)(strVerifyCode。長度* 21);
Bitmap map =新位圖(iMapWidth,28);//創建圖片背景
圖形graph =圖形。FromImage(地圖);
圖表。透明(彩色。Alice blue);//清除圖片,填充背景。
圖表。DrawRectangle(新鋼筆(顏色。黑色,0),0,0,地圖。寬度- 1,地圖。身高-1);//繪制邊框
圖表。SmoothingMode = System。drawing . drawing 2d . smoothing mode . antialias;//模式
Random rand = new Random();
//背景噪聲生成
鋼筆blackPen =新鋼筆(彩色。淺灰色,0);
for(int I = 0;我& lt50;i++)
{
int x =蘭特。接下來(0,地圖。寬度);
int y =蘭特。接下來(0,地圖。身高);
圖表。DrawRectangle(blackPen,x,y,1,1);
}
//驗證碼旋轉防止機器識別。
char[] chars = strVerifyCode。ToCharArray();//將字符串分解成單字符數組
//文本間距
string format format = new string format(string format flags。NoClip);
格式。對齊= StringAlignment。居中;
格式。LineAlignment = StringAlignment居中;
//定義顏色
Color[] c = { Color。黑色,彩色。紅色,彩色。深藍色,顏色。綠色,
顏色。橙色,彩色。棕色,彩色。暗青色,彩色。紫色};
//定義字體
String [] font = {"verdana "," Microsoft sans serif "," Comic sans ms "," Arial "," Song Ti " };
for(int I = 0;我& lt字符。長度;i++)
{
int cindex = rand。接下來(7);
int findex = rand。接下來(5);Font f =新系統。Drawing.Font(字體[findex],13,系統。drawing . font style . bold);//字體樣式(參數2是字體大小)
刷b =新系統。drawing . solid brush(c[cindex]);
點dot =新點(16,16);
浮動角度=蘭特。下壹個(-iRandAngle,iRandAngle);//旋轉的角度
圖表。TranslateTransform(點。x點。y);//將光標移動到指定位置。
圖表。旋轉變換(角度);
圖表。拉繩(chars[i]。ToString(),f,b,1,1,格式);
圖表。旋轉變換(-角度);//向後轉
圖表。TranslateTransform(2,-dot。y);//將光標移動到指定位置。
}
pictureBox1。圖像=地圖;
}
catch(參數異常)
{
MessageBox。Show("創建圖片時出錯。");
}
}
私有void button1_Click(對象發送方,EventArgs e)
{
//驗證大小寫
char[] ch1 = textBox1。text . ToCharArray();
char[] ch2 = strTemp。ToCharArray();
int nCount = 0;
for(int I = 0;我& ltstrTemp。長度;i++)
{
if((ch 1[I]>;= ' a ' & amp& ampch 1[I]& lt;= ' z ')| |(ch 1[I]& gt;= ' A ' & amp& ampch 1[I]& lt;='Z '))
{
if(ch 1[I]-32 = = CH2[I]| | ch 1[I]+32 = = CH2[I])
{
ncount++;
}
}
其他
{
if (ch1[i]==ch2[i])
{
ncount++;
}
}
}
if (nCount==strTemp。長度)
{
MessageBox。Show("驗證通過");
}
其他
{
UpdateVerifyCode();
文本框1。Text =
}
////無法驗證大小寫。
//if(textBox1。Text==strTemp)
//{
// MessageBox。Show("驗證通過");
//}
//否則
//{
//UpdateVerifyCode();
// textBox1。Text =
//}
}
///& lt;總結& gt
///圖片點擊事件
///& lt;/summary & gt;
///& lt;param name = " sender " & gt& lt/param & gt;
///& lt;param name = " e " & gt& lt/param & gt;
私有void pictureBox1_Click(對象發送方,EventArgs e)
{
UpdateVerifyCode();
}
}
}