Ⅰ 求開源好用的C#WINFORM 甘特圖控制項或者源碼
特性時間單位獨立數據結構規范
2、單一任務,分組任務,先例/依賴任務,劃分任務,標記資源
3、印刷方面頁面,每個頁面方向和多個頁面
4、為每個任務完成百分比屬性
5、各種滑鼠事件定製UI體驗直接在圖上。
6、有默認的滑鼠命令,可以通過繼承重載。
7、確定關鍵路徑和鬆弛
Ⅱ 求winform 載入窗體時彈出另一個窗體並顯示進度條的源碼
//frmA: 源窗體
//------------------------------------------
//引用
using System.Threading;
public frmA()
{
InitializeComponent();
worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new (worker_RunWorkerCompleted);
}
/// <summary>
/// 非同步 開始事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
//需要執行的代碼
}
/// <summary>
/// 事件: 非同步執行完成後
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("執行完成。", "run", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//點擊一個按鈕後開始執行
private void btnA_Click(object sender, EventArgs e)
{
//代碼
......
//非同步執行開始
worker.RunWorkerAsync(tableName);
//顯示進度窗體
frmB frm = new frmB(this.worker);
frm.StartPosition = FormStartPosition.CenterScreen;
frm.ShowDialog(this);
}
frmB:
//裡面放了一個loading.gif圖片顯示進度
------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace test
{
public partial class frmB: Form
{
public frmB(BackgroundWorker worker)
{
InitializeComponent();
worker.ProgressChanged +=new ProgressChangedEventHandler(worker_ProgressChanged);
worker.RunWorkerCompleted +=new (worker_RunWorkerCompleted);
}
void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.Close();
}
void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//lblStatus.Text = "";
}
//工作完成後執行的事件
public void OnProcessCompleted(object sender, EventArgs e)
{
this.Close();
}
}
另外,站長團上有產品團購,便宜有保證
Ⅲ C# WINFORM C/S 客戶端調服務端程序小源碼案例,非直接調資料庫
這樣的案例,一定是一個完整的工程,因為涉及到客戶端、伺服器端、資料庫等至少兩個子工程,不會太小,只能跟你說下大致方法。
再一個打的工程項目里,新建兩個子工程,一個是Winfrom工程,一個Web工程。如果不直接調用資料庫,可以在Web工程中新建一個Web服務,將資料庫訪問相關的代碼,寫入Web服務,在Winfrom項目中新增伺服器引用,引用Web服務,通過Web服務間接讀寫資料庫。
Web服務可以使用加強版的WCF,目前很流行。不直接調用資料庫的優點是,客戶端不保留資料庫連接字,可以保證資料庫安全。
Ⅳ C# Winform滿分求源碼示例[EXCEL模版套版列印],帶預覽。
雖然您明說了不要第三方控制項,但還是要忍不住向您推薦一個!
名叫Grid++Report,支持多種編程語言!支持Web、WinForm!例子代碼基本直接復制就用!現在的版本是5.8,列印只是預覽時才有免費水印,不影響列印。
PS:用了她3年,就當為她做個廣告!
另外,對於Excel,公司協議不能直接給您上代碼,但編程經驗可以分享下:
通過在Excel中定義操作參數,例如"@@cName"表示「單據頭某單元格的值」應該替換為表頭上"cName"列的值!$$HeadBegin、$$RowBegin表示單據頭、單據體的開始區域等,這樣的Excel套打也不難做。
Ⅳ 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界面特效源碼,求大神大一些,初學者,謝謝
看這個: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 虛擬鍵盤源碼。。
注冊全局熱鍵要用到Windows的API方法RegisterHotKey和UnregisterHotKey。一、聲明注冊熱鍵方法[DllImport("user32.dll")]private static extern int RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk);[DllImport("user32.dll")]private static extern int UnregisterHotKey(IntPtr hwnd, int id);int Space = 32; //熱鍵ID private const int WM_HOTKEY = 0x312; //窗口消息-熱鍵 private const int WM_CREATE = 0x1; //窗口消息-創建 private const int WM_DESTROY = 0x2; //窗口消息-銷毀 private const int MOD_ALT = 0x1; //ALT private const int MOD_CONTROL = 0x2; //CTRL private const int MOD_SHIFT = 0x4; //SHIFT private const int VK_SPACE = 0x20; //SPACE 二、注冊熱鍵方法/// <summary> /// 注冊熱鍵 /// </summary> /// <param name="hwnd">窗口句柄</param> /// <param name="hotKey_id">熱鍵ID</param> /// <param name="fsModifiers">組合鍵</param> /// <param name="vk">熱鍵</param> private void RegKey(IntPtr hwnd, int hotKey_id, int fsModifiers, int vk)elseif (!result)}/// <summary> /// 注銷熱鍵 /// </summary> /// <param name="hwnd">窗口句柄</param> /// <param name="hotKey_id">熱鍵ID</param> private void UnRegKey(IntPtr hwnd, int hotKey_id)三、重寫WndProc方法,實現注冊protected override void WndProc(ref Message m)break;case WM_CREATE: //窗口消息-創建 RegKey(Handle,Space,MOD_ALT | MOD_CONTROL | MOD_SHIFT,VK_SPACE); //注冊熱鍵 break;case WM_DESTROY: //窗口消息-銷毀 UnRegKey(Handle,Space); //銷毀熱鍵 break;default:break;}}
Ⅷ c#winform怎麼為窗體設計下樣式,原始界面太難看了。
把窗體的formborderstyle屬性設為none,,把找張圖片作為窗體的背景,,效果: