最近工作一直在使用VB6,有個地方讓我覺得快抓狂了,
就是它在看程式碼的時候居然沒有辦法使用滑鼠滾輪,
於是,在用了一、二個禮拜之後我終於受不了啦!
心裡想說Google看看有沒有人有跟我一樣的困擾,
沒想到,原來受害人不只我一人呀!
現在就來分享一下該怎麼讓VB6裡的滑鼠滾輪產生作用吧!
Step 1:首先按此下載Wheel.exe(載點是Microsoft的連結),然後先將它解壓縮。
Step 2:「開始」→「執行」→輸入「regsrv32 <解壓檔案路徑>\VB6IDEMouseWheelAddin.dll」→按確定
註:如果跟我一樣會出現「…失敗,找不到指定的模組」的,我最後是將 VB6IDEMouseWheelAddin.dll 檔案複製放到「C:\WINDOWS\system32」底下去執行就可以了!
Step 3:再來開啟你的Visual Basic 6.0,在上方的工具列上選擇「增益集」→「增益功能管理員」→在增益功能管理員中選擇「MouseWheel Fix」後把「載入/載出」、「在啟動時載入」這兩項打勾
如此一來,在VB6中你也可以用你的滾輪,看你愛移到哪就移到哪囉!
2012年9月27日 星期四
2012年9月26日 星期三
[C#]為自定義的函式加上說明
這幾天一直嘗試著寫寫C#,想到什麼功能就試著去用程式把它寫出來,
但是每次寫函式等到要用的時候有時候會忘記每個參數代表的意義,
在VS裡面本身所提供的函式在使用時都會有說明出現,
於是乎,我就開始Google一下如果是自定的函式有沒有辦法加上說明,
花了幾分鐘就找到啦!只要在函式上方加上以下幾行說明即可:
/// <summary>函式說明</summary>
/// <param name="參數名1">參數說明</param>
/// <param name="參數名2">參數說明 </param>
不知道在VB.NET中是不是也是像這樣的方式?
P.S.參數如果有多個就多幾行 /// <param name="參數名">參數說明 </param> 就可以囉!
但是每次寫函式等到要用的時候有時候會忘記每個參數代表的意義,
在VS裡面本身所提供的函式在使用時都會有說明出現,
於是乎,我就開始Google一下如果是自定的函式有沒有辦法加上說明,
花了幾分鐘就找到啦!只要在函式上方加上以下幾行說明即可:
/// <summary>函式說明</summary>
/// <param name="參數名1">參數說明</param>
/// <param name="參數名2">參數說明 </param>
不知道在VB.NET中是不是也是像這樣的方式?
P.S.參數如果有多個就多幾行 /// <param name="參數名">參數說明 </param> 就可以囉!
2012年9月20日 星期四
[C#]統一編號驗證 Uniform No. Validator
碼數 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
統一編號 | 0 | 0 | 2 | 3 | 8 | 7 | 7 | 8 | ||
運算 | x1 | x2 | x1 | x2 | x1 | x2 | x4 | x1 | ||
新值1 | 0 | 0 | 2 | 6 | 8 | 14 | 28 | 8 | 每個值的十位數與個位數加總直到只剩個位數 | |
新值2 | 0 | 0 | 2 | 6 | 8 | 5 | 10 | 8 | ||
新值3 | 0 | +0 | +2 | +6 | +8 | +5 | +1 | +8 | =30 | 每個數值加總後可整除10即代表統編正確 |
protected bool CheckUniformNo(string strCardno) { if (strCardno.Trim().Length < 8) { return false; } else { int[] intTmpVal = new int[6]; int intTmpSum = 0; for (int i = 0; i < 6; i++) { //位置在奇數位置的*2,偶數位置*1,位置計算從0開始 if (i % 2 == 1) intTmpVal[i] = overTen(int.Parse(strCardno[i].ToString()) * 2); else intTmpVal[i] = overTen(int.Parse(strCardno[i].ToString())); intTmpSum += intTmpVal[i]; } intTmpSum += overTen(int.Parse(strCardno[6].ToString()) * 4); //第6碼*4 intTmpSum += overTen(int.Parse(strCardno[7].ToString())); //第7碼*1 if (intTmpSum % 10 != 0) //除以10後餘0表示正確,反之則錯誤 return false; } return true; } private int overTen(int intVal) //超過10則十位數與個位數相加,直到相加後小於10 { if (intVal >= 10) intVal = overTen((intVal / 10) + (intVal % 10)); return intVal; }
2012年9月19日 星期三
[C#] 驗證信用卡卡號 Credit Card No. Validator
碼數 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |||
信用卡卡號 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 5 | |||
運算 | x2 | x1 | x2 | x1 | x2 | x1 | x2 | x1 | x2 | x1 | x2 | x1 | x2 | x1 | x2 | x1 | |||
新值1 | 6 | 4 | 10 | 6 | 14 | 8 | 18 | 0 | 2 | 2 | 6 | 4 | 10 | 6 | 14 | 5 | => | 把每個[新值1]的個位數與十位數加總,產生[新值2] | |
新值2 | 6+ | 4+ | 1+ | 6+ | 5+ | 8+ | 9+ | 0+ | 2+ | 2+ | 6+ | 4+ | 1+ | 6+ | 5+ | 5 | =70 | => | 加總每個[新值2]後若可整除10即代表卡號正確 |
protected bool CheckCreditCardNo(string strCardno) { if (strCardno.Trim().Length < 16) { return false; } else { int[] intTmpVal = new int[16]; int intTmpSum = 0; for (int i = 0; i < 16; i++) { //位置在奇數位置的*1,偶數位置*2,位置計算從0開始 if (i % 2 == 1) intTmpVal[i] = int.Parse(strCardno[i].ToString()); else intTmpVal[i] = int.Parse(strCardno[i].ToString()) * 2; //以上處理後若結果大於10的將其個位數+十位數 if (intTmpVal[i] >= 10) intTmpVal[i] = (intTmpVal[i] / 10) + (intTmpVal[i] % 10); //將所得的所有結果加總 intTmpSum += intTmpVal[i]; } if (intTmpSum % 10 != 0) //除以10後餘0表示正確,反之則錯誤 return false; } return true; }
2012年9月16日 星期日
[VB6]Excel使用
1. 開啟Excel檔案
2. 取得Excel第一個Sheet名稱
Dim xlsBook As Excel.Workbook '開啟Excel檔案 Set xlsBook = Workbooks.Open(".xls檔案位置")
2. 取得Excel第一個Sheet名稱
Dim sheetName As String sheetName = xlsBook.Sheets(1).Name '取得Excel第一個活頁簿的名稱 Set xlsSheet = xlsBook.Worksheets(sheetName)
2012年9月12日 星期三
[C#]日期驗證 Date Validator
1.日期驗證(for 西元年)
2.日期區間判斷
public static bool IsDate(string anyString) { if (anyString.Length != 8) //這是在沒有任何符號(/.-)的狀況下 return false; else { //在沒有符號的狀況下補上日期分隔符號
anyString = anyString.Substring(0, 4) + "/" + anyString.Substring(4, 2) + "/" + anyString.Substring(6, 2); //====以上若已經有在輸入時即限制輸入格式可不需要==== try { DateTime dt; dt = DateTime.Parse(anyString); return true; } catch { return false; } } }註:如果是要判斷民國年就將原本的民國年轉為數值後加上19110000再判斷即可
2.日期區間判斷
DateTime t1 = (DateTime.Parse((int.Parse(d1.Text.Substring(0, d1.Text.Length - 4)) + 1911) + "-" + d1.Text.Substring(d1.Text.Length - 4, 2) + "-" + d1.Text.Substring(d1.Text.Length - 2, 2))); DateTime t2 = (DateTime.Parse((int.Parse(d2.Text.Substring(0, d2.Text.Length - 4)) + 1911) + "-" + d2.Text.Substring(d2.Text.Length - 4, 2) + "-" + d2.Text.Substring(d2.Text.Length - 2, 2))); TimeSpan ts = t2 - t1; //驗證日期區間起始輸入是否正確,後面日期不可小於前面日期 if (ts.Days < 0) { MessageBox.Show("ERROR:請輸入正確日期區間,查詢起始日期必須小於結束日期"); return false; } //天數限制 if (ts.Days >= 31) { messageShow.Text = "ERROR:日期區間最多不可超過31日"; return false; } else { return true; }
2012年9月11日 星期二
[C#] 資料夾/檔案是否存在與建立資料夾
1. 判斷資料夾是否存在,並新增資料夾
2. 判斷檔案是否存在
注意:
路徑前必須加上@,如:@"D:\temp\"
否則會出現「無法辨認的逸出序列」的錯誤
using System.IO; if (Directory.Exists(資料夾路徑)) { //資料夾存在 } else { //新增資料夾 Directory.CreateDirectory(@"D:\temp\"); }
2. 判斷檔案是否存在
using System.IO; if (File.Exists(檔案路徑)) { //檔案存在 }
注意:
路徑前必須加上@,如:@"D:\temp\"
否則會出現「無法辨認的逸出序列」的錯誤
訂閱:
文章 (Atom)