最近工作一直在使用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)