cwinform項目源碼
『壹』 c# Winform 實現登錄界面驗證碼功能(文末附源碼)
閑來無事,最近自己發現自己的驗證碼功能還沒有寫過。於是就寫下了這篇文章。
界面就比較丑了,一個picturebox,一個textbox,一個button按鈕主要想的是先把功能實現了,萬一以後業務上需要使用呢。
實現以後的功能圖
在文本框中輸入對應文字,點擊確定來驗證,正確時候如圖所示
如果驗證失敗,沒有提示,直接更新驗證碼,當然需要使用的時候根據業務邏輯來就是了,這個就比較簡單了。
第一:生成驗證碼字元串,用到的是Random隨機函數
第二:將該字元串畫在picturebox中
第三點擊圖片,刷新驗證碼
第四驗證驗證碼不區分大小寫
或者區分大小寫
此時完成
源碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace suijima
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//驗證碼的長度
private const int iVerifyCodeLength = 6;
//驗證碼
private String strVerifyCode = "";
//匹配字元的臨時變數
string strTemp = "";
private void btnUpdate_Click(object sender, EventArgs e)
{
UpdateVerifyCode();
}
private void Form1_Load(object sender, EventArgs e)
{
UpdateVerifyCode();
}
//更新驗證碼
private void UpdateVerifyCode()
{
strVerifyCode = CreateRandomCode(iVerifyCodeLength);
if(strVerifyCode=="")
{
return;
}
strTemp = strVerifyCode;
CreateImage(strVerifyCode);
}
//生成驗證碼字元串
private string CreateRandomCode(int iLength)
{
int rand;
char code;
string randomCode = String.Empty;
//生成一定長度的驗證碼
System.Random random = new Random();
for (int i = 0; i < iLength; i++)
{
rand = random.Next();
if (rand % 3 == 0)
{
code = (char)('A' + (char)(rand % 26));
}
else
{
code = (char)('0' + (char)(rand % 10));
}
randomCode += code.ToString();
}
return randomCode;
}
/// 創建驗證碼圖片
private void CreateImage(string strVerifyCode)
{
try
{
int iRandAngle = 45; //隨機轉動角度
int iMapWidth = (int)(strVerifyCode.Length * 21);
Bitmap map = new Bitmap(iMapWidth, 28); //創建圖片背景
Graphics graph = Graphics.FromImage(map);
graph.Clear(Color.AliceBlue);//清除畫面,填充背景
graph.DrawRectangle(new Pen(Color.Black, 0), 0, 0, map.Width - 1, map.Height - 1);//畫一個邊框
graph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//模式
Random rand = new Random();
//背景噪點生成
Pen blackPen = new Pen(Color.LightGray, 0);
for (int i = 0; i < 50; i++)
{
int x = rand.Next(0, map.Width);
int y = rand.Next(0, map.Height);
graph.DrawRectangle(blackPen, x, y, 1, 1);
}
//驗證碼旋轉,防止機器識別
char[] chars = strVerifyCode.ToCharArray();//拆散字元串成單字元數組
//文字距中
StringFormat format = new StringFormat(StringFormatFlags.NoClip);
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
//定義顏色
Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green,
Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple };
//定義字體
string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋體" };
for (int i = 0; i < chars.Length; i++)
{
int cindex = rand.Next(7);
int findex = rand.Next(5); Font f = new System.Drawing.Font(font[findex], 13, System.Drawing.FontStyle.Bold);//字體樣式(參數2為字體大小)
Brush b = new System.Drawing.SolidBrush(c[cindex]);
Point dot = new Point(16, 16);
float angle = rand.Next(-iRandAngle, iRandAngle);//轉動的度數
graph.TranslateTransform(dot.X, dot.Y);//移動游標到指定位置
graph.RotateTransform(angle);
graph.DrawString(chars[i].ToString(), f, b, 1, 1, format);
graph.RotateTransform(-angle);//轉回去
graph.TranslateTransform(2, -dot.Y);//移動游標到指定位置
}
pictureBox1.Image = map;
}
catch (ArgumentException)
{
MessageBox.Show("創建圖片錯誤。");
}
}
private void button1_Click(object sender, EventArgs e)
{
//驗證大小寫
char[] ch1 = textBox1.Text.ToCharArray();
char[] ch2 = strTemp.ToCharArray();
int nCount = 0;
for (int i = 0; i < strTemp.Length;i++ )
{
if((ch1[i]>='a'&&ch1[i]<='z')||(ch1[i]>='A'&&ch1[i]<='Z'))
{
if (ch1[i] - 32 == ch2[i] || ch1[i] + 32 == ch2[i])
{
nCount++;
}
}
else
{
if (ch1[i]==ch2[i])
{
nCount++;
}
}
}
if (nCount==strTemp.Length)
{
MessageBox.Show("驗證通過");
}
else
{
UpdateVerifyCode();
textBox1.Text = "";
}
////不能驗證大小寫
//if(textBox1.Text==strTemp)
//{
// MessageBox.Show("驗證通過");
//}
//else
//{
// UpdateVerifyCode();
// textBox1.Text = "";
//}
}
/// <summary>
/// 圖片點擊事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pictureBox1_Click(object sender, EventArgs e)
{
UpdateVerifyCode();
}
}
}
『貳』 C# winform 如何獲取網頁源碼中的數據
private void button1_Click(object sender, EventArgs e)
{
try
{
if (this.txtUrl.Text.Trim().Length == 0)
{
("請輸入主入口地址!");
}
else
{
//這里獲取GetWebContent方法的結果
string webContent = GetWebContent(this.txtUrl.Text.Trim());
//聲明一個WebBrowser
WebBrowser webBrowser = new WebBrowser();
webBrowser.Navigate("about:blank");
//將GetWebContent方法返回的結果轉化為HtmlDocument,就可以正確處理網頁中的元素了。
HtmlDocument htmlDoc = webBrowser.Document.OpenNew(true);
htmlDoc.Write(webContent);
//獲取網頁中Body中的Html代碼
string outerHtml = htmlDoc.Body.OuterHtml;
//獲取網頁的標題
string outerTitle=htmlDoc.Title;
this.txtDocumentTitle.Text = outerTitle;
this.txtDocumentConent.Text = outerHtml;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
『叄』 在VS2005中怎麼把一個C#Winform程序打包成一個可執行程序,就是把讓別人看不到源碼
你將program中的啟動項目改成你要啟動項目,然後在解決方案配置的下拉框中選擇Release(在一個綠色的箭頭的旁邊),然後點擊綠色箭頭(運行按鈕),等程序運行成功後就可以在bin/Release 中找到你要的可執行文件,運行後可能會出現提示信息,不用理他,只要點確定就可以了。
在bin/Debug中的文件是你編譯的可執行文件,運行效果都是一樣的,不過在debug中有很多調試文件
『肆』 用Winform做項目,不知道怎麼添加圖片到SQL2005的image欄位中,同時把圖片顯示出來,求個類似項目的源代碼
我不知道為什麼要這樣做?
在我們的項目中,我們都是直接存儲圖片的路徑,這樣就能節約很多很多的空間。現在數碼相機照的圖片那麼大,如果放到資料庫中,那麼會是多麼的龐大的數據?想想都可怕
所以,建議樓主 存儲路徑,然後到時候需要的時候 直接去取就OK啦。
『伍』 如何反編譯C#等net軟體類庫源代碼
.Net 反編譯軟體,最著名的是 Reflector。但是最新版本收費現在打開Reflector的老版本要求強制更新到最新版本。所以,你一下在打開refector 會自動刪除。那麼大家可以使用 ILSpy。使用ILspy。
1
下載後的ILSPY 。
打開EXE
6
畢竟.NET 和JAVA 屬於中間語言,很好反編譯。
『陸』 求開源好用的C#WINFORM 甘特圖控制項或者源碼
特性時間單位獨立數據結構規范
2、單一任務,分組任務,先例/依賴任務,劃分任務,標記資源
3、印刷方面頁面,每個頁面方向和多個頁面
4、為每個任務完成百分比屬性
5、各種滑鼠事件定製UI體驗直接在圖上。
6、有默認的滑鼠命令,可以通過繼承重載。
7、確定關鍵路徑和鬆弛
『柒』 winform 打包後怎麼查看源碼
我也給你提供一個關鍵詞吧
.NET Reflector
微軟內部員工自個開發的反編譯工具,可以將未加密.net 開發的程序dll、exe文件反編譯成跟VS一樣易閱讀的代碼。
『捌』 .net 的winform程序源碼要如何製作成應用程序
簡單的你按F5運行一下,在程序目錄下面的bin下面的debug目錄裡面就已經生成對應的exe文件了。如果要製作安裝包,可以新建一個安裝部署的項目(具體你可以搜索一下,很簡單)。或者用專門的安裝包製作軟體來製作。
兩種方法:一、資料庫單獨備份出來,安裝的時候提示用戶要安裝資料庫。二、做一個資料庫安裝程序(就是用執行建庫程序,這方面的資料可以搜索到,就是執行一些SQL的api函數,相當於手動附加資料庫上去)另外如果你的access這樣的資料庫的話,直接打包進去就行了
installsheild這個打包軟體是很有名的。或者用VS自帶的安裝部署也可以。新建項目--其它項目類型--安裝和部署當然.net下的優勢就是x優勢,其實用winrar把需要用的dll等文件壓縮到一個文件夾里,復制到目標機器解壓縮就可以使用了。
『玖』 C#winform界面特效源碼,求大神大一些,初學者,謝謝
看這個:http://blog.csdn.net/meiyun/article/details/7722397
一共470多例winform 界面特效的源碼。
窗體與界面設計... 9
實例001 帶歷史信息的菜單 10
實例002 菜單動態合並 12
實例003 像開始菜單一樣漂亮的菜單... 14
實例004 任務欄托盤菜單 15
實例005 可以拉伸的菜單界面 16
實例006 菜級聯菜單 18
1.2 工具欄設計... 19
實例007 帶帶背景的工具欄 19
實例008 帶浮動工具欄 20
實例009 在帶下拉菜單的工具欄... 21
實例010 在具有提示功能的工具欄... 22
實例011 在狀態欄中顯示檢查框... 23
實例012 帶進度條的狀態欄 25
實例013 狀態欄中加入圖標 26
實例014 OutLook界面 27
實例015 帶帶導航菜單的主界面... 29
實例016 圖形化的導航界面 32
實例017 菜類QQ的程序界面 35
實例018 類似windows xp的程序界面... 38
實例019 以圖形按鈕顯示的界面... 42
實例020 以樹形顯示的程序界面... 44
實例021 動態按鈕的窗體界面 46
實例022 非矩形窗體 50
實例023建立字體形狀窗體 52
實例024控制項隨窗體自動調整 54
實例025帶分隔欄的窗體 55
實例026隨機更換主界面背景 56
實例027自動啟動的多媒體光碟程序... 57
實例028為觸摸屏程序添加虛擬鍵盤... 59
實例029半透明漸顯窗體 61
實例030窗口顏色的漸變 63
實例031窗體中的滾動字幕 65
實例032動畫顯示窗體 67
實例033製作閃爍的窗體 69
實例034直接在窗體上繪圖 70
實例035動畫形式的程序界面 73
實例036使窗體標題欄文字右對齊... 75
實例037沒有標題欄可義改變大小的窗口... 76
實例038設置窗體在屏幕中的位置... 77
實例039始終在最上面的窗體 78
實例040限制窗體大小 79
實例041獲取桌面大小 81
實例042在窗口間移動按扭 82
實例043如何實現Office助手 84
實例044在關閉窗口前加入確認對話框... 85
實例045使用任意組件拖動窗體... 88
實例046修改提示字體及顏色 89
實例047如何為MDI類型窗體設置背景圖片... 91
實例048向提示框中添加圖標 93
實例418通過串口發送數據 95
實例419通過串口關閉對方計算機... 98
實例420密碼寫入與讀出加密狗... 101
實例421使用加密狗進行身份驗證... 105
實例422向IC卡中寫入數據 107
實例423讀取IC卡中的數據 113
實例424利用IC卡製作考勤程序... 116
實例425簡易視頻程序 119
實例426攝像頭監控錄像 125
實例427超市攝像頭定時監控系統... 127
實例428語音卡電話呼叫系統 132
實例429客戶來電查詢系統 141
實例430語音卡實現電話錄音 144
實例431利用簡訊貓收發簡訊息... 147
實例432利用簡訊遠程關閉計算機... 155
實例433簡訊息採集煙草銷售數據... 159
實例434「春晚」節目評比簡訊息互動平台... 164
實例435條形碼掃描器銷售商品... 167
實例436利用神龍卡製作練歌房程序... 169
實例463數據加密技術 174
實例464文本文件加密與解密 177
實例465利用圖片加密文件 188
實例466如何編程修復Access資料庫... 194
實例467訪問帶驗證模式的Sqlserver 2000資料庫... 197
實例468利用INI文件對軟體進行注冊... 201
實例469利用注冊表設計軟體注冊程序... 204
實例470利用網卡序列號設計軟體注冊程序... 208
實例471根據cpu序列號、磁碟序列號設計軟體注冊程序... 214
『拾』 Winform 在datagridview控制項中增刪改的源碼
//刪除
private void 刪除用戶ToolStripMenuItem_Click(object sender, EventArgs e)
{
string UserId = dgvUserInfo.SelectedRows[0].Cells[0].Value.ToString();
string delete = "delete from 用戶表 where 用戶編號=" + UserId;
bb.Connection = aa;
bb.CommandText = delete;
aa.Open();
bb.ExecuteNonQuery();
aa.Close();
dgvUserInfo.Rows.Remove(dgvUserInfo.SelectedRows[0]);
}
//增加
List<User> list = new List<User>();
string UserName = txtUserName.Text;
string UserPsw = txtUserPsw.Text;
string UserRight = txtUserRight.Text;
string Sql = "insert 用戶表(用戶名,密碼,許可權) values('"+UserName+"','"+UserPsw+"','"+UserRight+"')";
SqlConnection aa = new SqlConnection("Data Source=ST412\\SQLEXPRESS;Initial Catalog=44;Integrated Security=True");
SqlCommand bb = new SqlCommand();
bb.Connection = aa;
bb.CommandText = Sql;
aa.Open();
bb.ExecuteNonQuery();