winform框架源碼
A. 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);
}
}
B. C# Winform滿分求源碼示例[EXCEL模版套版列印],帶預覽。
雖然您明說了不要第三方控制項,但還是要忍不住向您推薦一個!
名叫Grid++Report,支持多種編程語言!支持Web、WinForm!例子代碼基本直接復制就用!現在的版本是5.8,列印只是預覽時才有免費水印,不影響列印。
PS:用了她3年,就當為她做個廣告!
另外,對於Excel,公司協議不能直接給您上代碼,但編程經驗可以分享下:
通過在Excel中定義操作參數,例如"@@cName"表示「單據頭某單元格的值」應該替換為表頭上"cName"列的值!$$HeadBegin、$$RowBegin表示單據頭、單據體的開始區域等,這樣的Excel套打也不難做。
C. 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();
}
}
}
D. .net 的winform程序源碼要如何製作成應用程序
簡單的你按F5運行一下,在程序目錄下面的bin下面的debug目錄裡面就已經生成對應的exe文件了。如果要製作安裝包,可以新建一個安裝部署的項目(具體你可以搜索一下,很簡單)。或者用專門的安裝包製作軟體來製作。
兩種方法:一、資料庫單獨備份出來,安裝的時候提示用戶要安裝資料庫。二、做一個資料庫安裝程序(就是用執行建庫程序,這方面的資料可以搜索到,就是執行一些SQL的api函數,相當於手動附加資料庫上去)另外如果你的access這樣的資料庫的話,直接打包進去就行了
installsheild這個打包軟體是很有名的。或者用VS自帶的安裝部署也可以。新建項目--其它項目類型--安裝和部署當然.net下的優勢就是x優勢,其實用winrar把需要用的dll等文件壓縮到一個文件夾里,復制到目標機器解壓縮就可以使用了。