第一篇:VB關(guān)鍵字總結(jié)
1.編譯命令關(guān)鍵字總結(jié)
作用
關(guān)鍵字 定義編譯常數(shù)。
#Const 編譯程序碼中的選擇區(qū)塊。
#If...Then...#Else
計(jì)算當(dāng)前凈值。
NPV, PV
7.控制流關(guān)鍵字總結(jié)
作用
關(guān)鍵字
分支。
GoSub...Return, GoTo, On Error, On...GoSub, On...GoTo 退出或暫停程序。
DoEvents, End, Exit, Stop 2.變量與常數(shù)關(guān)鍵字總結(jié)
作用
關(guān)鍵字 循環(huán)。
Do...Loop For...Next, For Each...Next, While...Wend, With 指定值。
Let 判斷。
Choose, If...Then...Else, Select Case, Switch 聲明變量或常數(shù)。
Const, Dim, Private, Public, New, Static 使用過程。
Call, Function, Property Get, Property Let, Property Set, Sub 聲明模塊為私有。
Option Private Module 8.目錄和文件關(guān)鍵字總結(jié) 判斷
Variant。IsArray, IsDate, IsEmpty, IsError, IsMissing, 作用
關(guān)鍵字
改變目錄或文件夾。
ChDir IsNull, IsNumeric, IsObject, TypeName, VarType 引用當(dāng)前對象。
Me 改變磁盤。
ChDrive 變量須明確聲明。
Option Explicit 復(fù)制文件。
FileCopy 設(shè)置缺省數(shù)據(jù)類型。
Deftype 新建目錄或文件夾。
MkDir
刪除目錄或文件夾。
RmDir 3.運(yùn)算符關(guān)鍵字總結(jié)
作用
關(guān)鍵字 重新命名文件、目錄或文件夾。Name 算術(shù)。
^,-, *, /, , Mod, +, & 返回當(dāng)前路徑。
CurDir 比較。
=, <>, <, >, <=, >=, Like, Is 返回文件的日期、時(shí)間。
FileDateTime 邏輯運(yùn)算。
Not, And, Or, Xor, Eqv, Imp 返回文件、目錄及標(biāo)簽屬性。
GetAttr
返回文件長度。
FileLen 4.錯(cuò)誤關(guān)鍵字總結(jié)
作用
關(guān)鍵字
作用
關(guān)鍵字 返回文件名或磁盤標(biāo)簽。
Dir 產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。
Clear, Error, Raise
返回 Error 變體。
CVErr 設(shè)置有關(guān)文件屬性的信息。
SetAttr 取得錯(cuò)誤信息。
Error
提供錯(cuò)誤信息。
Er r 9.日期與時(shí)間關(guān)鍵字總結(jié) 運(yùn)行時(shí)的錯(cuò)誤處理。
On Error, Resume
類型確認(rèn)。
IsError 作用
關(guān)鍵字
設(shè)置當(dāng)前日期或時(shí)間。
Date ,Now, Time 5.Collection 對象關(guān)鍵字總結(jié)
作用
關(guān)鍵字
作用
關(guān)鍵字 計(jì)算日期。
DateAdd, DateDiff, DatePart 建立一個(gè) Collection 對象。
Collection 添加對象到集合對象中。
Add 返回日期。
DateSerial, DateValue 從集合對象中刪除對象。
Remove
引用集合對象中的項(xiàng)。
Item 返回時(shí)間。
TimeSerial, TimeValue
設(shè)置日期或時(shí)間。
Date, Time 6.金融關(guān)鍵字總結(jié)
作用
關(guān)鍵字 計(jì)時(shí)。
Timer 計(jì)算折舊率。
DDB, SLN, SYD 10.輸入與輸出關(guān)鍵字總結(jié) 計(jì)算未來值。
FV 作用
關(guān)鍵字 計(jì)算利率。
Rate 訪問或創(chuàng)建文件。
Open 計(jì)算本質(zhì)利率。
IRR, MIRR 關(guān)閉文件。
Close, Reset 計(jì)算期數(shù)。
NPer 控制輸出外觀。
Format, Print, Print #, Spc, Tab, Width # 計(jì)算支付。
IPmt, Pmt, PPmt 復(fù)制文件。
FileCopy 取得文件相關(guān)信息。
EOF, FileAttr, FileDateTime, FileLen, FreeFile, GetAttr, 作用
關(guān)鍵字
ANSI 值變換為字符串。
Chr Loc, LOF, Seek 文件管理。
Dir, Kill, Lock, Unlock, Name 大小寫變換。
Format, LCase, UCase 從文件讀入。
Get, Input, Input #, Line Input # 日期變換為數(shù)字串。
DateSerial, DateValue 返回文件長度。
FileLen 數(shù)字進(jìn)制變換。
Hex, Oct 設(shè)置或取得文件屬性。
FileAttr, GetAttr, SetAttr 數(shù)值變換為字符串。
Format, Str 設(shè)置文件讀寫位置。
Seek 數(shù)據(jù)類型變換。
CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, 寫入文件。
Print #, Put, Write # CSng, CStr, CVar, CVErr, Fix, Int
日期變換。
Day, Month, Weekday, Year 11.數(shù)據(jù)類型關(guān)鍵字總結(jié)
作用
關(guān)鍵字 時(shí)間變換。
Hour, Minute, Second 數(shù)據(jù)類型變換。
CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, 字符串變換為 ASCII 值。
Asc
字符串變換為數(shù)值。
Val CSng, CStr, CVar, CVErr, Fix, Int 設(shè)置數(shù)據(jù)類型。
Boolean, Byte, Currency, Date, Double, Integer, Long, 時(shí)間變換為數(shù)字串。
TimeSerial, TimeValue Object, Single, String, Variant(default)16.字符串處理關(guān)鍵字總結(jié)
檢查數(shù)據(jù)類型。
IsArray, IsDate, IsEmpty, IsError, IsMissing, IsNull, 作用
關(guān)鍵字
比較兩個(gè)字符串。
StrComp IsNumeric, IsObject
變換字符串。
StrConv 12.數(shù)學(xué)關(guān)鍵字總結(jié)
作用
關(guān)鍵字 大小寫變換。
Format, LCase, UCase 三角函數(shù)。
Atn, Cos, Sin, Tan 建立重復(fù)字符的字符串。
Space, String 一般計(jì)算。
Exp, Log, Sqr 計(jì)算字符串長度。
Len 產(chǎn)生隨機(jī)數(shù)。
Randomize, Rnd 設(shè)置字符串格式。
Format 取得絕對值。
Abs
取得表達(dá)式的正負(fù)號(hào)。
Sgn 重排字符串。
LSet, RSet 數(shù)值變換。
Fix, Int 處理字符串。
InStr, Left, LTrim, Mid, Right, RTrim, Trim
設(shè)置字符串比較規(guī)則。
Option Compare 13.數(shù)組關(guān)鍵字總結(jié)
作用
關(guān)鍵字
作用
關(guān)鍵字 運(yùn)用 ASCII 與 ANSI 值。
Asc, Chr 確認(rèn)一個(gè)數(shù)組。
IsArray
建立一個(gè)數(shù)組。
Array 17.其他關(guān)鍵字總結(jié) 改變?nèi)笔∽钚≈怠?/p>
Option Base 作用
關(guān)鍵字 聲明及初始化數(shù)組。
Dim, Private, Public, ReDim, Static 處理擱置事件。
DoEvents 判斷數(shù)組下標(biāo)極限值。
LBound, UBound 運(yùn)行其他程序。
AppActivate, Shell 重新初始化一個(gè)數(shù)組。
Erase, ReDim 發(fā)送按鍵信息給其他應(yīng)用程序。SendKeys
發(fā)出警告聲。
Beep 14.注冊關(guān)鍵字總結(jié)
作用
關(guān)鍵字 系統(tǒng)。
Environ 刪除程序設(shè)置。
DeleteSetting 提供命令行字符串。
Command 讀入程序設(shè)置。
GetSetting, GetAllSettings Macintosh。
MacID, MacScript 保存程序設(shè)置。
SaveSetting 自動(dòng)。
CreateObject, GetObject
色彩。
QBColor, RGB 15.變換關(guān)鍵字總結(jié)
第二篇:VB的關(guān)鍵字
VB關(guān)鍵字大總結(jié)
1.編譯命令關(guān)鍵字總結(jié)
作用 關(guān)鍵字 定義編譯常數(shù)。#Const 編譯程序碼中的選擇區(qū)塊。#If...Then...#Else
2.變量與常數(shù)關(guān)鍵字總結(jié)
作用 指定值。Let 聲明變量或常數(shù)。Const, Dim, Private, Public, New, Static 聲明模塊為私有。Option Private Module 判斷 VariantTypeName, VarType 引用當(dāng)前對象。Me 變量須明確聲明。Option Explicit 設(shè)置缺省數(shù)據(jù)類型。Deftype
3.運(yùn)算符關(guān)鍵字總結(jié)
作用 算術(shù)。^,-, *, /, , Mod, +, & 比較。=, <>, <, >, <=, >=, Like, Is 邏輯運(yùn)算。Not, And, Or, Xor, Eqv, Imp
4.錯(cuò)誤關(guān)鍵字總結(jié)
作用 產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。Clear, Error, Raise 取得錯(cuò)誤信息。Error 提供錯(cuò)誤信息。Err 返回 Error 變體。CVErr 運(yùn)行時(shí)的錯(cuò)誤處理。On Error, Resume
關(guān)鍵字。IsArray, IsDate, IsEmpty, IsError, IsMissing, IsNull, IsNumeric, IsObje關(guān)鍵字
關(guān)鍵字
1 型確認(rèn)。IsError Collection 對象關(guān)鍵字總結(jié)
用 關(guān)鍵字 立一個(gè) Collection 對象。Collection 加對象到集合對象中。Add 集合對象中刪除對象。Remove Item
DDB, SLN, SYD FV Rate IRR, MIRR NPer IPmt, Pmt, PPmt NPV, PV
GoSub...Return, GoTo, On Error, On...GoSub, On...GoTo DoEvents, End, Exit, Stop Do...Loop For...Next, For Each...Next, While...Wend, With Choose, If...Then...Else, Select Case, Switch Call, Function, Property Get, Property Let, Property Set, Sub
ChDir ChDrive FileCopy MkDir RmDir Name
關(guān)鍵字
關(guān)鍵字
關(guān)鍵字 2 用集合對象中的項(xiàng)。金融關(guān)鍵字總結(jié)用算折舊率。算未來值。算利率。算本質(zhì)利率。算期數(shù)。算支付。算當(dāng)前凈值。控制流關(guān)鍵字總結(jié)用支。出或暫停程序。環(huán)。斷。用過程。目錄和文件關(guān)鍵字總結(jié)用變目錄或文件夾。變磁盤。制文件。建目錄或文件夾。除目錄或文件夾。新命名文件、目錄或文件夾。返回當(dāng)前路徑。CurDir 返回文件的日期、時(shí)間。FileDateTime 返回文件、目錄及標(biāo)簽屬性。GetAttr 返回文件長度。FileLen 返回文件名或磁盤標(biāo)簽。Dir 設(shè)置有關(guān)文件屬性的信息。SetAttr
9.日期與時(shí)間關(guān)鍵字總結(jié)
作用 設(shè)置當(dāng)前日期或時(shí)間。Date ,Now, Time 計(jì)算日期。DateAdd, DateDiff, DatePart 返回日期。DateSerial, DateValue 返回時(shí)間。TimeSerial, TimeValue 設(shè)置日期或時(shí)間。Date, Time 計(jì)時(shí)。Timer
10.輸入與輸出關(guān)鍵字總結(jié)
作用 訪問或創(chuàng)建文件。Open 關(guān)閉文件。Close, Reset 控制輸出外觀。Format, Print, Print #, Spc, Tab, Width # 復(fù)制文件。FileCopy 取得文件相關(guān)信息。EOF, FileAttr, FileDateTime, FileLen, FreeFile, GetAttr, Loc, LOF, Seek 文件管理。Dir, Kill, Lock, Unlock, Name 從文件讀入。Get, Input, Input #, Line Input # 返回文件長度。FileLen 設(shè)置或取得文件屬性。FileAttr, GetAttr, SetAttr 設(shè)置文件讀寫位置。Seek 寫入文件。Print #, Put, Write #
11.數(shù)據(jù)類型關(guān)鍵字總結(jié)
作用 數(shù)據(jù)類型變換。CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar, CVErr, FInt
關(guān)鍵字
關(guān)鍵字 關(guān)鍵字
3 置數(shù)據(jù)類型。Boolean, Byte, Currency, Date, Double, Integer, Long, Object, Single, String, Variant efault)查數(shù)據(jù)類型。IsArray, IsDate, IsEmpty, IsError, IsMissing, IsNull, IsNumeric, IsObject.數(shù)學(xué)關(guān)鍵字總結(jié)
用 關(guān)鍵字
角函數(shù)。Atn, Cos, Sin, Tan Exp, Log, Sqr Randomize, Rnd Abs Fix, Int 數(shù)組關(guān)鍵字總結(jié)
IsArray Array Option Base Dim, Private, Public, ReDim, Static 注冊關(guān)鍵字總結(jié)
DeleteSetting GetSetting, GetAllSettings SaveSetting 變換關(guān)鍵字總結(jié)
值變換為字符串。Format, LCase, UCase DateSerial, DateValue Hex, Oct
關(guān)鍵字 關(guān)鍵字
關(guān)鍵字 4 般計(jì)算。生隨機(jī)數(shù)。得絕對值。得表達(dá)式的正負(fù)號(hào)。Sgn 值變換。.用認(rèn)一個(gè)數(shù)組。立一個(gè)數(shù)組。變?nèi)笔∽钚≈怠C骷俺跏蓟瘮?shù)組。斷數(shù)組下標(biāo)極限值。LBound, UBound 新初始化一個(gè)數(shù)組。Erase, ReDim.用除程序設(shè)置。入程序設(shè)置。存程序設(shè)置。.用SI Chr 小寫變換。期變換為數(shù)字串。字進(jìn)制變換。數(shù)值變換為字符串。Format, Str 數(shù)據(jù)類型變換。CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar, CVErr, FInt 日期變換。Day, Month, Weekday, Year 時(shí)間變換。Hour, Minute, Second 字符串變換為 ASCII 值。Asc 字符串變換為數(shù)值。Val 時(shí)間變換為數(shù)字串。TimeSerial, TimeValue
16.字符串處理關(guān)鍵字總結(jié)
作用 比較兩個(gè)字符串。StrComp 變換字符串。StrConv 大小寫變換。Format, LCase, UCase 建立重復(fù)字符的字符串。Space, String 計(jì)算字符串長度。Len 設(shè)置字符串格式。Format 重排字符串。LSet, RSet 處理字符串。InStr, Left, LTrim, Mid, Right, RTrim, Trim 設(shè)置字符串比較規(guī)則。Option Compare 運(yùn)用 ASCII 與 ANSI 值。Asc, Chr
17.其他關(guān)鍵字總結(jié)
作用 處理擱置事件。DoEvents 運(yùn)行其他程序。AppActivate, Shell 發(fā)送按鍵信息給其他應(yīng)用程序。發(fā)出警告聲。Beep 系統(tǒng)。Environ 提供命令行字符串。Command Macintosh。MacID, MacScript 自動(dòng)。CreateObject, GetObject 色彩。QBColor, RGB
關(guān)鍵字 關(guān)鍵字
5 SendKeys
第三篇:VB關(guān)鍵字
VB關(guān)鍵字總結(jié)
1.編譯命令關(guān)鍵字總結(jié)
作用 關(guān)鍵字 定義編譯常數(shù)。#Const 編譯程序碼中的選擇區(qū)塊。#If...Then...#Else
2.變量與常數(shù)關(guān)鍵字總結(jié)
作用 指定值。Let 聲明變量或常數(shù)。Const, Dim, Private, 聲明模塊為私有。Option Private Module 判斷 VariantIsError, IsMissing, IsNull, IsNumeric, IsObject, TypeName, VarType 引用當(dāng)前對象。Me 變量須明確聲明。Option Explicit 設(shè)置缺省數(shù)據(jù)類型。Deftype
3.運(yùn)算符關(guān)鍵字總結(jié)
作用 算術(shù)。^,-, *, /, , Mod, +, & 比較。=, <>, <, >, <=, >=, Like, Is 邏輯運(yùn)算。Not, And, Or, Xor, Eqv, Imp
4.錯(cuò)誤關(guān)鍵字總結(jié)
作用 產(chǎn)生運(yùn)行時(shí)錯(cuò)誤。Clear, Error, Raise 取得錯(cuò)誤信息。Error 提供錯(cuò)誤信息。Err 返回 Error 變體。CVErr 運(yùn)行時(shí)的錯(cuò)誤處理。On Error, Resume 類型確認(rèn)。IsError
關(guān)鍵字 Public, New, Static。IsArray, IsDate, IsEmpty, 關(guān)鍵字
關(guān)鍵字
1 5.Collection 對象關(guān)鍵字總結(jié)
作用 關(guān)鍵字 建立一個(gè) Collection 對象。Collection 添加對象到集合對象中。Add 從集合對象中刪除對象。Remove 引用集合對象中的項(xiàng)。Item
6.金融關(guān)鍵字總結(jié)
作用 計(jì)算折舊率。DDB, SLN, SYD 計(jì)算未來值。FV 計(jì)算利率。Rate 計(jì)算本質(zhì)利率。IRR, MIRR 計(jì)算期數(shù)。NPer 計(jì)算支付。IPmt, Pmt, PPmt 計(jì)算當(dāng)前凈值。NPV, PV
7.控制流關(guān)鍵字總結(jié)
作用 分支。GoSub...Return, GoTo, On Error, On...GoSub, On...GoTo 退出或暫停程序。DoEvents, End, Exit, Stop 循環(huán)。Do...Loop For...Next, For Each...Next, While...Wend, With 判斷。Choose, If...Then...Else, Select Case, Switch 使用過程。Call, Let, Property Set, Sub
8.目錄和文件關(guān)鍵字總結(jié)
作用 改變目錄或文件夾。ChDir 改變磁盤。ChDrive 復(fù)制文件。FileCopy 新建目錄或文件夾。MkDir 刪除目錄或文件夾。RmDir 重新命名文件、目錄或文件夾。Name
關(guān)鍵字
關(guān)鍵字
Function, Property Get, Property 關(guān)鍵字 2 返回當(dāng)前路徑。CurDir 返回文件的日期、時(shí)間。FileDateTime 返回文件、目錄及標(biāo)簽屬性。GetAttr 返回文件長度。FileLen 返回文件名或磁盤標(biāo)簽。Dir 設(shè)置有關(guān)文件屬性的信息。SetAttr
9.日期與時(shí)間關(guān)鍵字總結(jié)
作用 關(guān)鍵字
設(shè)置當(dāng)前日期或時(shí)間。Date ,Now, Time 計(jì)算日期。DateAdd, DateDiff, DatePart 返回日期。DateSerial, DateValue 返回時(shí)間。TimeSerial, TimeValue 設(shè)置日期或時(shí)間。Date, Time 計(jì)時(shí)。Timer
10.輸入與輸出關(guān)鍵字總結(jié)
作用 關(guān)鍵字 訪問或創(chuàng)建文件。Open 關(guān)閉文件。Close, Reset 控制輸出外觀。Format, Print, Print #, Spc, Tab, Width # 復(fù)制文件。FileCopy 取得文件相關(guān)信息。EOF, FileAttr, FileDateTime, FileLen, FreeFile, GetAttr, Loc, LOF, Seek 文件管理。Dir, Kill, Lock, Unlock, Name 從文件讀入。Get, Input, Input #, Line Input # 返回文件長度。FileLen 設(shè)置或取得文件屬性。FileAttr, GetAttr, SetAttr 設(shè)置文件讀寫位置。Seek 寫入文件。Print #, Put, Write #
11.數(shù)據(jù)類型關(guān)鍵字總結(jié)
作用 關(guān)鍵字
數(shù)據(jù)類型變換。CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar, CVErr, Fix, Int
3 設(shè)置數(shù)據(jù)類型。Boolean, Byte, Currency, Date, Double, Integer, Long, Object, Single, String, Variant(default)檢查數(shù)據(jù)類型。IsArray, IsDate, IsEmpty, IsError, IsMissing, IsNull, IsNumeric, IsObject
12.數(shù)學(xué)關(guān)鍵字總結(jié)
作用 關(guān)鍵字
三角函數(shù)。Atn, Cos, Sin, Tan 一般計(jì)算。Exp, Log, Sqr 產(chǎn)生隨機(jī)數(shù)。Randomize, Rnd 取得絕對值。Abs 取得表達(dá)式的正負(fù)號(hào)。數(shù)值變換。Fix, Int
13.數(shù)組關(guān)鍵字總結(jié)
作用 確認(rèn)一個(gè)數(shù)組。IsArray 建立一個(gè)數(shù)組。Array 改變?nèi)笔∽钚≈?。Option Base 聲明及初始化數(shù)組。Dim, Private, Public, ReDim, Static 判斷數(shù)組下標(biāo)極限值。重新初始化一個(gè)數(shù)組。
14.注冊關(guān)鍵字總結(jié)
作用 刪除程序設(shè)置。DeleteSetting 讀入程序設(shè)置。GetSetting, GetAllSettings 保存程序設(shè)置。SaveSetting
15.變換關(guān)鍵字總結(jié)
作用 ANSI 值變換為字符串。大小寫變換。Format, LCase, UCase 日期變換為數(shù)字串。DateSerial, DateValue 數(shù)字進(jìn)制變換。Hex, Oct 數(shù)值變換為字符串。Format, Str
關(guān)鍵字 關(guān)鍵字
關(guān)鍵字 4 Sgn LBound, UBound Erase, ReDim Chr 數(shù)據(jù)類型變換。CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar, CVErr, Fix, Int 日期變換。Day, Month, Weekday, Year 時(shí)間變換。Hour, Minute, Second 字符串變換為 ASCII 值。Asc 字符串變換為數(shù)值。Val 時(shí)間變換為數(shù)字串。TimeSerial, TimeValue
16.字符串處理關(guān)鍵字總結(jié)
作用 比較兩個(gè)字符串。StrComp 變換字符串。StrConv 大小寫變換。Format, LCase, UCase 建立重復(fù)字符的字符串。Space, String 計(jì)算字符串長度。Len 設(shè)置字符串格式。Format 重排字符串。LSet, RSet 處理字符串。InStr, Left, LTrim, Mid, Right, RTrim, Trim 設(shè)置字符串比較規(guī)則。Option Compare 運(yùn)用 ASCII 與 ANSI 值。Asc, Chr
17.其他關(guān)鍵字總結(jié)
作用 處理擱置事件。DoEvents 運(yùn)行其他程序。AppActivate, Shell 發(fā)送按鍵信息給其他應(yīng)用程序。發(fā)出警告聲。Beep 系統(tǒng)。Environ 提供命令行字符串。Command Macintosh。MacID, MacScript 自動(dòng)。CreateObject, GetObject 色彩。QBColor, RGB 關(guān)鍵字 關(guān)鍵字
5
SendKeys
第四篇:java中常用關(guān)鍵字總結(jié)
Java中的關(guān)鍵字總結(jié)
final 關(guān)鍵字
1、用final修飾的類不能被繼承,沒有子類;
2、用final修飾的方法,方法不能被重寫;
3、用final修飾變量,變量的值不能被修改,表示常量,(書寫規(guī)范:全部字母都要大寫;多個(gè)單詞,可以使用下劃線(_)分開;)注意:如果被final修飾的變量是一個(gè)引用類型的數(shù)據(jù),那么通過這個(gè)引用改變堆空間中的數(shù)據(jù),不會(huì)報(bào)錯(cuò);如果被final修飾的變量是一個(gè)引用類型的數(shù)據(jù),那么通過這個(gè)引用改變堆空間中的數(shù)據(jù),不會(huì)報(bào)錯(cuò);
4、final用于成員變量表示該成員變量為常量,不能被修改,必須在變量定義時(shí)賦值。
5、final用于局部變量表示該局部變量為常量,不能被修改,可以在變量定義時(shí)賦值,也可以先定義變量后賦值。什么時(shí)候用final關(guān)鍵字? 有的時(shí)候不想別人重寫我的方法就使用final關(guān)鍵字修飾該方法;
static關(guān)鍵字
1、static用于成員變量表示該變量只有一份,也就是說靜態(tài)成員變量屬于類而不屬于某個(gè)具體的類實(shí)例對象,所有的類實(shí)例對象共享這個(gè)靜態(tài)成員變量; 靜態(tài)函數(shù)是不需要對象的,直接可以使用類名來調(diào)用;
2、非靜態(tài)函數(shù)可以調(diào)用靜態(tài)函數(shù);靜態(tài)函數(shù)不能調(diào)用非靜態(tài)函數(shù)(非靜態(tài)函數(shù)都是通過對象調(diào)用的);靜態(tài)函數(shù)不能使用非靜態(tài)成員變量,但可以使用靜態(tài)成員變量;
3、靜態(tài)函數(shù)調(diào)用時(shí)不需要對象的,所以不能使用和對象有關(guān)的關(guān)鍵字;(this;super;)
4、構(gòu)造函數(shù)不能使用static修飾(構(gòu)造函數(shù)是創(chuàng)建對象,開辟空間,給所有成員變量賦默認(rèn)值之后,有JVM調(diào)用進(jìn)棧,用來給對象的成員變量賦初始值的)static用于類,這里指的是內(nèi)部類,那么在別的地方就可以通過外部類名來引用這個(gè)靜態(tài)的內(nèi)部類。
5、static還可以用于類的代碼塊,叫做靜態(tài)代碼塊,靜態(tài)代碼塊在類加載的時(shí)候就執(zhí)行完畢,而類只加載一次;是在類中獨(dú)立于類成員的static語句塊,可以有多個(gè),位置可以隨便放,它不在任何的方法體內(nèi),JVM加載類時(shí)會(huì)執(zhí)行這些靜態(tài)的代碼塊,如果static代碼塊有多個(gè),JVM將按照它們在類中出現(xiàn)的先后順序依次執(zhí)行它們,每個(gè)代碼塊只會(huì)被執(zhí)行一次。什么時(shí)候用static關(guān)鍵字? 不想建立對象時(shí);對于公用的成員變量必須使用static關(guān)鍵字修飾才能保證共享;
private關(guān)鍵字
1、java中的訪問權(quán)限修飾符(作用是控制被修飾的成員的訪問權(quán)限);被private修飾的成員,只能在本類中使用;所以被私有的成員需要在外界訪問,還需要提供一個(gè)公共的方法;
設(shè)值:set + 變量名(變量名的首字母大寫); 取值:get + 變量名(變量名的首字母大寫);
2、構(gòu)造函數(shù)私有化,就只能在被類中使用,別的地方調(diào)用不了;單例設(shè)計(jì)模式時(shí)會(huì)用到;
在開發(fā)中,一般類的成員變量都要私有化,然后提供get和set方法;
interface關(guān)鍵字
1、interface接口不是一個(gè)類,使用interface聲明;接口沒有構(gòu)造函數(shù);接口是用來描述不屬于繼承體系的擴(kuò)展功能的;還可以定義規(guī)則;接口和類之間是實(shí)現(xiàn)關(guān)系,一個(gè)實(shí)現(xiàn)類可以實(shí)現(xiàn)多個(gè)接口;接口和接口之間是繼承關(guān)系,可以多繼承和多重繼承;
2、接口中可以書寫的內(nèi)容:
成員變量:只能使用一下修飾符:public static final;也就是說,接口中的成員變量,都是常量;
成員函數(shù): 只能使用修飾符:public abstract;也就是說,接口中的方法,都是公共和抽象的;一般函數(shù)前面的修飾符,推薦public不要省略;
什么時(shí)候用interface關(guān)鍵字? 對于繼承體系之外的擴(kuò)展功能需要使用接口來描述;
implements關(guān)鍵字
implements用于實(shí)現(xiàn)接口,需要實(shí)現(xiàn)接口中的所有方法,可以同時(shí)實(shí)現(xiàn)多個(gè)接口。extends關(guān)鍵字
extends用于繼承父類或父接口,繼承父類時(shí)只能是單繼承。
class關(guān)鍵字
class用于聲明類,訪問權(quán)限可以是public或者默認(rèn)權(quán)限,還可以指定為abstract、final,訪問權(quán)限對于頂層類和內(nèi)部類的限制是不同的。
instanceof關(guān)鍵字
1、比較運(yùn)算符,運(yùn)算符左邊是一個(gè)指向一個(gè)對象的引用(左邊就是一個(gè)變量名),右邊是一個(gè)類名,運(yùn)算符表示的意思就是:判斷左邊的對象的類型是不是右邊的類;
2、使用instanceof關(guān)鍵字,可以實(shí)時(shí)判斷一個(gè)對象的類型,就可以避免強(qiáng)制類型轉(zhuǎn)換中容易出現(xiàn)的類型轉(zhuǎn)換異常。
abstract關(guān)鍵字
1、abstract用于類表示這個(gè)類為抽象類,不能實(shí)例化。
2、抽象類,必須由子類去繼承,繼承的子類必須實(shí)現(xiàn)父類中所有的抽象方法,否則子類也是抽象的;
3、抽象函數(shù)必須放在抽象類中;抽象類中除了抽象函數(shù),還可以定義所有一般類中可以定義的成員;
4、抽象類中可以不書寫抽象方法;抽象類中必須有構(gòu)造方法;抽象類一定是父類;
5、抽象類是父類,用來描述所有子類的共性信息的,只是描述的有些功能是不具體的;
6、abstract用于方法表示這個(gè)方法為抽象方法,只需聲明,不用實(shí)現(xiàn),由子類實(shí)現(xiàn),抽象方法不能用private和static關(guān)鍵字。什么時(shí)候用abstract關(guān)鍵字? 當(dāng)事物的功能描述不清,只能表示有這個(gè)功能時(shí),就應(yīng)該使用抽象修飾該功能,這個(gè)功能就是抽象的功能;如果一個(gè)類中有抽象的功能,那么這個(gè)類也是抽象的類;不想實(shí)例化這個(gè)類(包括自己也不行),但是允許別人繼承,也可以使用抽象類。
this關(guān)鍵字
1、表示自身所屬對象的引用;哪個(gè)對象調(diào)用this,this就指向哪個(gè)對象;
2、Java關(guān)鍵字this只能用于方法方法體內(nèi)。當(dāng)一個(gè)對象創(chuàng)建后,Java虛擬機(jī)(JVM)就會(huì)給這個(gè)對象分配一個(gè)引用自身的指針,這個(gè)指針的名字就是this。因此,this只能在類中的非靜態(tài)方法中使用,靜態(tài)方法和靜態(tài)的代碼塊中絕對不能出現(xiàn)this.什么時(shí)候用this關(guān)鍵字?
1、通過this調(diào)用另一個(gè)構(gòu)造方法,用法:this(參數(shù)列表),這個(gè)僅僅在類的構(gòu)造方法中,別的地方不能這么用。如果一個(gè)構(gòu)造函數(shù)中有this()語句,就沒有隱式三步,隱式三步在this語句調(diào)用的那個(gè)構(gòu)造函數(shù)中,且this語句必須在第一行的位置;
2、函數(shù)參數(shù)或者函數(shù)中的局部變量和成員變量同名的情況下,成員變量被私有化,此時(shí)要訪問成員變量則需要用“this.成員變量名”的方式來引用成員變量。(用來區(qū)分成員變量和局部變量)
3、在函數(shù)中,需要引用該函所屬類的當(dāng)前對象時(shí)候,直接用this。
super關(guān)鍵字
1、表示父類;可以在子類中調(diào)用父類的非私有成員和構(gòu)造函數(shù);
2、調(diào)用方法:
調(diào)用父類構(gòu)造函數(shù):super(參數(shù));(父類中沒有無參構(gòu)造函數(shù)在父類中添
加一個(gè)無參構(gòu)造;在子類中手動(dòng)調(diào)用有參構(gòu)造函數(shù))調(diào)用父類成員變量:super.變量名; 調(diào)用父類成員函數(shù):super.函數(shù)名(參數(shù));
3、super關(guān)鍵和this作用類似,是被私有的成員變量或者成員方法變?yōu)榭梢?,或者說用來引用被私有的成員變量和成員方法,不過super是用在子類中,目的是訪問直接父類中被屏蔽的成員.什么時(shí)候用super關(guān)鍵字?
如果父類中沒有無參構(gòu)造函數(shù)是,需要在子類中用super調(diào)用有參構(gòu)造函數(shù);
第五篇:VB常見問題總結(jié)
快捷域名:http://yujimyfavorcn.programfan.com 創(chuàng)建于:2005-6-5 共 6篇文章 訪問統(tǒng)計(jì):169
VB常見問題總結(jié)
點(diǎn)擊數(shù):138 發(fā)布日期:2005-6-5 18:28:00 【字體:大 中 小】【評論】【打印】
各位朋友大家好,如果你在這里的時(shí)間夠長,那么你會(huì)發(fā)現(xiàn)很多帖子的問題是相同的,既然這樣,不如總結(jié)到一起讓初學(xué)者來翻看,再熱心的大蝦也不愿意把一個(gè)答案重復(fù)幾十遍:)Ryowu制作匆忙,難免錯(cuò)漏,還請見諒。
若朋友您想要問如何才能學(xué)好vb,或者入門需要看什么教材一類的問題,建議你抱著一顆刻苦鉆研的心去面對這門學(xué)問,多動(dòng)腦,少提問,遇到不知道的,多查msdn,多看老貼,或者用斷點(diǎn)來親自試驗(yàn)。實(shí)在不會(huì)了,請?jiān)诖速N中查找您的常見問題,如果還沒有,那請您發(fā)出新貼,向各位高手討教:)
查找方法:按ctrl+f,輸入要查找的問題關(guān)鍵字即可
注明:本貼源于VB編程樂園網(wǎng)站,本人只是稍微編輯了一下。
每個(gè)問題中間用///分隔,這只是一部分最常見到的問題,以后會(huì)逐漸更新。
//////////////////////////////////////////////////////////////////////////////////// 如何用VB建立快捷方式
Private Declare Function fCreateShellLink Lib “STKIT432.DLL”(ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String)As Long Sub Command1_Click()Dim lReturn As Long '添加到桌面
lReturn = fCreateShellLink(“....Desktop”, “Shortcut to Calculator”, “c:windowscalc.exe”, “")'添加到程序組
lReturn = fCreateShellLink(”“, ”Shortcut to Calculator“, ”c:windowscalc.exe“, ”“)'添加到啟動(dòng)組
lReturn = fCreateShellLink(”Startup“, ”Shortcut to Calculator“, ”c:windowscalc.exe“, ”“)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何讓程序在 Windows 啟動(dòng)時(shí)自動(dòng)執(zhí)行?
有以下二個(gè)方法:
方法1: 直接將快捷方式放到啟動(dòng)群組中。
方法2: 在注冊檔 HKEY_LOCAL_MACHINE 中找到以下機(jī)碼 SoftwareMicrosoftWindowsCurrentVersionRun 新增一個(gè)字串值,包括二個(gè)部份
1.名稱部份:自己取名,可設(shè)定為 AP 名稱。
2.資料部份:則是包含 '全路徑檔案名稱' 及 '執(zhí)行參數(shù)' 例如:
Value Name = Notepad Value Data = c:windowsnotepad.exe
//////////////////////////////////////////////////////////////////////////////////// 在 TextBox 中如何限制只能輸入數(shù)字?
參考下列程序:
Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 我希望 TextBox 中能不接受某些特定字符,例如 '@#$%”,有沒有簡單一點(diǎn)的寫法?
方法有好幾種, 以下列舉二種:
方法1: 可以使用 IF 或 Select Case 一個(gè)個(gè)判斷, 但如果不接受的字符多時(shí), 較麻煩!方法2: 將要剔除的字符統(tǒng)統(tǒng)放在一個(gè)字串中,只要一個(gè) IF 判斷即可!如下: Private Sub Text1_KeyPress(KeyAscii As Integer)Dim sTemplate As String sTemplate = “!@#$%^&*()_+-=” '用來存放不接受的字符 If InStr(1, sTemplate, Chr(KeyAscii))> 0 Then KeyAscii = 0 End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何讓鼠標(biāo)進(jìn)入 TextBox 時(shí)自動(dòng)選定 TextBox 中之整串文字?
這個(gè)自動(dòng)選定反白整串文字的動(dòng)作,會(huì)使得輸入的資料完全取代之前在 TextBox 中的所有字符。
Private Sub Text1_GotFocus()Text1.SelStart = 0 Text1.SelLength = Len(Text1)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何檢查軟盤驅(qū)動(dòng)器里是否有軟盤?
使用:
Dim Flag As Boolean
Flag = Fun_FloppyDrive(“A:”)If Flag = False Then MsgBox “A:驅(qū)沒有準(zhǔn)備好,請將磁盤插入驅(qū)動(dòng)器!”, vbCritical
' '函數(shù):檢查軟驅(qū)中是否有盤的存在 ' Private Function Fun_FloppyDrive(sDrive As String)As Boolean On Error Resume Next Fun_FloppyDrive = Dir(sDrive)<> “" End Function
//////////////////////////////////////////////////////////////////////////////////// 如何彈出和關(guān)閉光驅(qū)托盤?
Option Explicit
Private Declare Function mciSendString Lib ”winmm.dll“ Alias ”mciSendStringA“(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long)As Long
Private Sub Command1_Click()mciExecute ”set cdaudio door open“ '彈出光驅(qū) Label2.Caption = ”彈 出“ End Sub
Private Sub Command2_Click()Label2.Caption = ”關(guān) 閉“
mciExecute ”set cdaudio door closed“ '合上光驅(qū) Unload Me End End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何讓你的程序在任務(wù)列表隱藏
Private Declare Function RegisterServiceProcess Lib ”kernel32“(ByVal ProcessID As Long, ByVal ServiceFlags As Long)As Long Private Declare Function GetCurrentProcessId Lib ”kernel32“()As Long
'請你試試 Ctrl+Alt+Del 是不是你的程序隱藏了 Private Sub Command1_Click()i = RegisterServiceProcess(GetCurrentProcessId, 1)End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何用程序控制滑鼠游標(biāo)(Mouse Cursor)到指定位置?
以下這個(gè)例子,當(dāng) User 在 Text1 中按下 'Enter' 鍵后,滑鼠游標(biāo)會(huì)自動(dòng)移到 Command2 按鈕上方
請?jiān)诼暶鲄^(qū)中加入以下聲明:
'16 位版本:(Sub 無傳回值)Declare Sub SetCursorPos Lib ”User“(ByVal X As Integer, ByVal Y As Integer)
'32 位版本:(Function 有傳回值,Integer 改成 Long)Declare Function SetCursorPos Lib ”user32“(ByVal x As Long, ByVal y As Long)As Long
'在 Form1 中加入以下程序碼:
Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then x% =(Form1.Left + Command2.Left + Command2.Width / 2 + 60)/ Screen.TwipsPerPixelX y% =(Form1.Top + Command2.Top + Command2.Height / 2 + 360)/ Screen.TwipsPerPixelY SetCursorPos x%, y% End If End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何用鼠標(biāo)移動(dòng)沒有標(biāo)題的 Form,或移動(dòng) Form 中的控制項(xiàng)?
在聲明區(qū)中放入以下聲明:
'16 位版本:(Sub 無返回值)Private Declare Sub ReleaseCapture Lib ”User“()Private Declare Sub SendMessage Lib ”User“(ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Long)
'32 位版本:(Function 有返回值,Integer 改成 Long)Private Declare Function ReleaseCapture Lib ”user32“()As Long Private Declare Function SendMessage Lib ”user32“ Alias ”SendMessageA“(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)As Long
'共用常數(shù):
Const WM_SYSCOMMAND = &H112 Const SC_MOVE = &HF012
'若要移動(dòng) Form,程序碼如下:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim i As Long i = ReleaseCapture i = SendMessage(Form1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0)End Sub
'以上功能也適用于用鼠標(biāo)在 Form 中移動(dòng)控制項(xiàng),程序碼如下:
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim i As Long i = ReleaseCapture i = SendMessage(Command1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0)End Sub
//////////////////////////////////////////////////////////////////////////////////// 檢查文件是否存在?
Function FileExists(filename As String)As Integer Dim i As Integer On Error Resume Next i = Len(Dir$(filename))If Err Or i = 0 Then FileExists = False Else FileExists = True End Function
//////////////////////////////////////////////////////////////////////////////////// 如何設(shè)置對VB數(shù)據(jù)庫連接的動(dòng)態(tài)路徑
我個(gè)人因?yàn)榻?jīng)常作一些數(shù)據(jù)庫方面的程序,對于程序間如何與數(shù)據(jù)庫進(jìn)行接口的問題之煩是深有體會(huì),因?yàn)閂B在數(shù)據(jù)庫鏈接的時(shí)候,一般是靜態(tài),即數(shù)據(jù)庫存放的路徑是固定的,如用VB的DATA,adodc,DataEnvironment 等到作數(shù)據(jù)庫鏈接時(shí),如果存放數(shù)據(jù)庫的路徑被改變的話,就會(huì)找不到路經(jīng),真是一個(gè)特別煩的事。
筆者的解決方法是利用app.path 來解決這個(gè)問題。
一、用data控件進(jìn)行數(shù)據(jù)庫鏈接,可以這樣: 在form_load()過程中放入: private form_load()Dim str As String '定義 str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If data1.databasename=str & ”數(shù)據(jù)庫名“ data1.recordsource=”數(shù)據(jù)表名“ data1.refresh sub end 這幾句話的意為,打開當(dāng)前程序運(yùn)行的目錄下的數(shù)據(jù)庫。你只要保證你的數(shù)據(jù)庫在你程序所在的目錄之下就行了。
二、利用adodc(ADO Data Control)進(jìn)行數(shù)據(jù)庫鏈接: private form_load()Dim str As String '定義 str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If str = ”Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=“ & str & ”tsl.mdb“ Adodc1.ConnectionString = str Adodc1.CommandType = adCmdText
Adodc1.RecordSource = ”select * from table3“ Adodc1.Refresh end sub
三、利用DataEnvironment進(jìn)行數(shù)據(jù)庫鏈接 可在過程中放入: On Error Resume Next
If DataEnvironment1.rsCommand1.State <> adStateClosed Then DataEnvironment1.rsCommand1.Close '如果打開,則關(guān)閉 End If 'i = InputBox(”請輸入友人編號(hào):“, ”輸入“)'If i = ”“ Then Exit Sub
DataEnvironment1.Connection1.Open App.Path & ”userdatabasetsl.mdb“ DataEnvironment1.rsCommand1.Open ”select * from table3 where 編號(hào)='“ & i & ”'“ 'Set DataReport2.DataSource = DataEnvironment1 'DataReport2.DataMember = ”command1“ 'DataReport2.show end sub
四、利用ADO(ActiveX Data Objects)進(jìn)行編程: 建立連接:
dim conn as new adodb.connection dim rs as new adodb.recordset dim str str = App.Path If Right(str, 1)<> ”“ Then str = str + ”“ End If str = ”Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=“ & str & ”tsl.mdb“ conn.open str rs.cursorlocation=aduseclient rs.open ”數(shù)據(jù)表名“,conn,adopenkeyset.adlockpessimistic 用完之后關(guān)閉數(shù)據(jù)庫: conn.close set conn=nothing
//////////////////////////////////////////////////////////////////////////////////// 如何讓用戶自行輸入方程式,并計(jì)算其結(jié)果?
假設(shè)我們要讓使用者在“方程式”欄位中自由輸入方程式,然后利用方程式進(jìn)行計(jì)算,則引用ScriptControl控件可以很方便地做到。
(ScriptControl 控件附屬于VB 6.0,如果安裝后沒有看到此一控件,可在光盤的
CommonToolsVBScript 目錄底下找此一控件,其.文件名為Msscript.ocx。)假設(shè)放在窗體上的ScriptControl控件名稱為ScriptControl1,則在“計(jì)算”按鈕的Click事件中編寫如下代碼: Dim Statement As String Statement = ”X=“ + Text1.Text + vbCrLf + _ ”Y=“ + Text2.Text + vbCrLf + _ ”MsgBox “"計(jì)算結(jié)果=”“ & Y ” ScriptControl1.ExecuteStatement(Statement
//////////////////////////////////////////////////////////////////////////////////// 如何讓一個(gè) App 永遠(yuǎn)保持在最上層(Always on Top)
請?jiān)诼暶鲄^(qū)中加入以下聲明
Private Declare Function SetWindowPos Lib “user32”(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)As Long
Const SWP_NOMOVE = &H2 '不更動(dòng)目前視窗位置 Const SWP_NOSIZE = &H1 '不更動(dòng)目前視窗大小 Const HWND_TOPMOST =-1 '設(shè)定為最上層
Const HWND_NOTOPMOST =-2 '取消最上層設(shè)定 Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
'將 APP 視窗設(shè)定成永遠(yuǎn)保持在最上層
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
'取消最上層設(shè)定
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS
//////////////////////////////////////////////////////////////////////////////////// 我要如何在程序中開啟網(wǎng)頁?
在聲明區(qū)中聲明如下(在.bas 檔中用 Public, 在 Form 中用 Private)
Private Declare Function ShellExecute Lib “shell32.dll” Alias “ShellExecuteA”(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long)As Long
在程序中
Intranet:
ShellExecute Me.hWnd, “open”, “http://Intranet主機(jī)/目錄”, “", ”“, 5 Internet:
ShellExecute Me.hWnd, ”open“, ”http://004km.cn.tw“, ”“, ”“, 5
//////////////////////////////////////////////////////////////////////////////////// VB可以產(chǎn)生四角形以外其他形狀的 Form 嗎?
這個(gè)問題,您一定無法想像有多容易,您可以產(chǎn)生任何形狀的 Form,但必須借助 CreateEllipticRgn 及 SetWindowRgn 二個(gè) API,例如:
Private Declare Function CreateEllipticRgn Lib ”gdi32“(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long)As Long
Private Declare Function SetWindowRgn Lib ”user32“(ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean)As Long
Private Sub Form_Load()Dim lReturn As Long Me.Show lReturn = SetWindowRgn(hWnd, CreateEllipticRgn(10, 10, 340, 150), True)End Sub
執(zhí)行結(jié)果圖片
CreateEllipticRgn 之四個(gè)參數(shù)說明如下:
X1:橢圓中心點(diǎn)之X軸位置,但以 Form 的實(shí)№邊界為限。Y1:橢圓中心點(diǎn)之Y軸位置,但以 Form 的實(shí)№邊界為限。X2:橢圓長邊的長度 Y2:橢圓短邊的長度的
//////////////////////////////////////////////////////////////////////////////////// 如何移除 Form 右上方之『X』按鈕?
其實(shí) Form 右上方之三個(gè)按鈕分別對應(yīng)到 Form 左上方控制盒(ControlBox)中的幾個(gè)選項(xiàng)(縮到最小 / 放到最大 / 關(guān)閉),而其中的最大化(MaxButton)及最小化(Minbutton)都可以直接在 Form 的屬性中設(shè)定,但是 VB 并沒有提供設(shè)定『X』按鈕的功能!要達(dá)到這個(gè)功能,必須借助 API:
由于『X』按鈕對應(yīng)到 ControlBox 的關(guān)閉選項(xiàng),所以我們只要移除系統(tǒng) Menu(就是ControlBox)的關(guān)閉選項(xiàng)即可!您自己可以先看看您現(xiàn)在使用的 Browser 左上方的系統(tǒng) Menu,【關(guān)閉】選項(xiàng)是在第幾個(gè),不是第 6 個(gè)!是第 7 個(gè),分隔線也算一個(gè)!分隔線才是第 6 個(gè)!
當(dāng)我們移除了關(guān)閉選項(xiàng)之後,會(huì)留下一條很奇怪的分隔線,所以最好連分隔線也一并移除。而 Menu 的 Index 是從 0 開始,分隔線是第 6 個(gè),所以 Index = 5。
修正:為了讓程序碼在 Windows NT 也能運(yùn)作正常,將各 Integer 型態(tài)改成 Long。89.05.04
'抓取系統(tǒng) Menu 的 hwnd Private Declare Function GetSystemMenu Lib ”user32“ Alias ”GetSystemMenu“(ByVal hwnd As Long, ByVal bRevert As Long)As Long '移除系統(tǒng) Menu 的 API Private Declare Function RemoveMenu Lib ”user32“ Alias ”RemoveMenu“(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long)As Long '第一個(gè)參數(shù)是系統(tǒng) Menu 的 hwnd '第二個(gè)參數(shù)是要移除選項(xiàng)的 Index
//////////////////////////////////////////////////////////////////////////////////// 如何制作透明的表單(Form)?
請?jiān)诼暶鲄^(qū)中放入以下聲明
Const GWL_EXSTYLE =(-20)Const WS_EX_TRANSPARENT = &H20& Const SWP_FRAMECHANGED = &H20 Const SWP_NOMOVE = &H2 Const SWP_NOSIZE = &H1 Const SWP_SHOWME = SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE Const HWND_NOTOPMOST =-2
Private Declare Function SetWindowLong Lib ”user32“ Alias ”SetWindowLongA“(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)As Long Private Declare Function SetWindowPos Lib ”user32“(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)As Long
在 Form_Load 使用的范例如下:
Private Sub Form_Load()SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_TRANSPARENT
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0&, 0&, 0&, 0&, SWP_SHOWME Me.Refresh End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何在 Menu 中加入美美的圖案?
在模組中加入以下程序碼:
Declare Function GetMenu Lib ”user32“(ByVal hwnd As Long)As Long
Declare Function GetSubMenu Lib ”user32“(ByVal hMenu As Long, ByVal nPos As Long)As Long
Declare Function GetMenuItemID Lib ”user32“(ByVal hMenu As Long, ByVal nPos As Long)As Long
Declare Function SetMenuItemBitmaps Lib ”user32“(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long)As Long
Public Const MF_BITMAP = &H4&
Type MENUITEMINFO cbSize As Long fMask As Long fType As Long fState As Long wID As Long hSubMenu As Long hbmpChecked As Long hbmpUnchecked As Long dwItemData As Long dwTypeData As String cch As Long End Type
Declare Function GetMenuItemCount Lib ”user32“(ByVal hMenu As Long)As Long
Declare Function GetMenuItemInfo Lib ”user32“ Alias ”GetMenuItemInfoA“(ByVal hMenu As Long, ByVal un As Long, _ ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO)As Boolean
Public Const MIIM_ID = &H2 Public Const MIIM_TYPE = &H10 Public Const MFT_STRING = &H0&
在 Form 中加入一個(gè) PictureBox,屬性設(shè)定為: AutoSize = True Picture =.bmp(尺寸大小為 13x13,不可設(shè)定為.ico)
在 Form_Load 中的程序碼如下:
Private Sub Form_Load()'取得程序中 Mennu 的 handle hMenu& = GetMenu(Form1.hWnd)'取得第一個(gè) submenu 的 handle hSubMenu& = GetSubMenu(hMenu&, 0)'取得 Submenu 第一個(gè)選項(xiàng)的 menuId hID& = GetMenuItemID(hSubMenu&, 0)'加入圖片
SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture '在一個(gè) Menu 選項(xiàng)中您一共可以加入二張圖片 '一張是 checked 狀態(tài)用,一張是 unchecked 狀態(tài)用 End Sub
89、如何把小圖片填滿 Form 成為背景圖?
對于這個(gè)問題,我看過很多方法,有的方法很麻煩,要聲明一大堆 Type,用一大堆的 API,但是有一個(gè)最笨但我認(rèn)為最好的方法如下:(就好像拼磁磚一樣,不用任何 API, 不必聲明任何 Type)
在 Form 中放一個(gè) PictureBox,Picture 屬性設(shè)定為某一張小圖,AutoSize 屬性性設(shè)定 True,完成的模組如下:
Sub PictureTile(Frm As Form, Pic As PictureBox)Dim i As Integer Dim t As Integer Frm.AutoRedraw = True Pic.BorderStyle = 0 For t = 0 To Frm.Height Step Pic.ScaleHeight For i = 0 To Frm.Width Step Pic.ScaleWidth Frm.PaintPicture Pic.Picture, i, t Next i Next t End Sub
PictureTile 這個(gè)模組共有二個(gè)參數(shù),第一個(gè)是表單名稱,第二個(gè)則是 PictureBox 的名稱。以下為一應(yīng)用實(shí)例:
Private Sub Form_Load()PictureTile Me, Picture1 End Sub
90、如何把小圖片填滿 MDIForm 成為背景圖?
以下這個(gè)范例,要:
1、一個(gè) MDIForm:不必設(shè)定任何屬性。
2、一個(gè) Form1:不一定是 MDIChild,最好 MDIChild 為 False,但是 AutoRedraw 設(shè)成 True。
3、Form1 上面放一個(gè)隱藏的 PictureBox:名稱為 Picture1,不必設(shè)定 Picture 屬性。
4、一張圖片的完整路徑。
'將以下模組放入 MDIForm 的聲明區(qū)中:
Sub TileMDIBkgd(MDIForm As Form, bkgdtiler As Form, bkgdfile As String)If bkgdfile = ”“ Then Exit Sub Dim ScWidth%, ScHeight% ScWidth% = Screen.Width / Screen.TwipsPerPixelX ScHeight% = Screen.Height / Screen.TwipsPerPixelY Load bkgdtiler bkgdtiler.Height = Screen.Height bkgdtiler.Width = Screen.Width bkgdtiler.ScaleMode = 3 bkgdtiler!Picture1.Top = 0 bkgdtiler!Picture1.Left = 0 bkgdtiler!Picture1.Picture = LoadPicture(bkgdfile)bkgdtiler!Picture1.ScaleMode = 3
For n% = 0 To ScHeight% Step bkgdtiler!Picture1.ScaleHeight For o% = 0 To ScWidth% Step bkgdtiler!Picture1.ScaleWidth bkgdtiler.PaintPicture bkgdtiler!Picture1.Picture, o%, n% Next o% Next n%
MDIForm.Picture = bkgdtiler.Image Unload bkgdtiler End Sub
以下為一應(yīng)用實(shí)例:
Private Sub MDIForm_Load()TileMDIBkgd Me, Form1, ”c:windowsTiles.bmp“ End Sub
//////////////////////////////////////////////////////////////////////////////////// 關(guān)閉指定的程序
要做到像 Task Manager 一樣,可以關(guān)閉指定的程序,方法如下:
在聲明區(qū)中放入以下聲明:(16位 改成 win31 API)
Declare Function FindWindow Lib ”user32“ Alias ”FindWindowA“(ByVal lpClassName As String, ByVal lpWindowName As String)As Long
Declare Function PostMessage Lib ”user32“ Alias ”PostMessageA“(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)As Long
Public Const WM_CLOSE = &H10
以下之范例示范如何關(guān)閉一個(gè)視窗標(biāo)題(Caption)為 【小算盤】的程序:
Dim winHwnd As Long Dim RetVal As Long winHwnd = FindWindow(vbNullString, ”小算盤“)Debug.Print winHwnd If winHwnd <> 0 Then RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)If RetVal = 0 Then
MsgBox ”Error posting message.“ End If Else MsgBox ”并未開啟小算盤程序.“ End If
//////////////////////////////////////////////////////////////////////////////////// 如何隱藏及再顯示鼠標(biāo)
很簡單,只用到了一個(gè) ShowCursor API,參數(shù)也很簡單,只有一個(gè) bShow,設(shè)定值如下:
True:顯示鼠標(biāo) / False:隱藏鼠標(biāo)
Declare Function ShowCursor Lib ”user32“ Alias ”ShowCursor“(ByVal bShow As Long)As Long
//////////////////////////////////////////////////////////////////////////////////// 如何從您的應(yīng)程序中結(jié)束 Windows 重開機(jī)?
很多軟件在 Setup 完之后都會(huì)自動(dòng)關(guān)機(jī)重開機(jī),以便讓某些設(shè)定值可以生效,其實(shí)這個(gè)功能很簡單,只要幾行指令就可以做到了!
關(guān)鍵就是要使用 ExitWindowsEx 這個(gè) API,這個(gè) API 只有二個(gè)參數(shù),第一個(gè)參數(shù)是一個(gè) Flag,目的是要告訴 Windows 要以什么方式關(guān)機(jī),在下面的聲明中會(huì)列出可用的 Flag 常數(shù)值,至于第二個(gè)參數(shù)則是一個(gè)保留值,只要設(shè)定成 0 就可以了。
很重要的一點(diǎn)是:如果您想要讓關(guān)機(jī)動(dòng)作更順利,記得要 Unload 您的程序!
'在聲明區(qū)中(Bas Module / Form Module)加入以下聲明:
Public Const EWX_LOGOFF = 0 '這四個(gè)常數(shù)值可以并用 Public Const EWX_SHUTDOWN = 1 Public Const EWX_REBOOT = 2 Public Const EWX_FORCE = 4 Declare Function ExitWindowsEx Lib ”user32“ Alias ”ExitWindowsEx“(ByVal uFlags As Long, ByVal dwReserved As Long)As Long
'實(shí)例:如果您想強(qiáng)迫關(guān)機(jī)重開機(jī),程序碼如下:
ret = ExitWindowsEx(EWX_FORCE OR EWX_REBOOT, 0)
//////////////////////////////////////////////////////////////////////////////////// 如何用 VB 啟動(dòng)其他程序或開啟各類文件?
要在 VB 中啟動(dòng)其他程序或開啟各類文件,最簡單的方法就是使用 Shell 函數(shù),例如:要開啟 C:Test.txt 這個(gè)文字文件,則要啟動(dòng)記事本來開啟這個(gè)文件案,程序如下:
Dim RetVal As Long RetVal = Shell(”C:WindowsNotepad.exe C:Test.txt“, 3)'3代表視窗會(huì)最大化,并具有駐點(diǎn),細(xì)節(jié)請查 Help
以上的語法雖然很簡單,但有一個(gè)風(fēng)險(xiǎn),若是我們不知道開啟文件的執(zhí)行文件位置,則程序便會(huì)有錯(cuò)誤產(chǎn)生,尤其一般軟件在安裝的時(shí)候都可以讓使用者自行選擇安裝目錄,所以執(zhí)行文件的路徑不能寫死在程序中,要解決這個(gè)問題,就是在注冊文件中找到該副文件名之啟動(dòng)程序位置,再放入 Shell 中。
但是以上的作法必須熟悉注冊文件,而且必須使用 Windows API 來 Call(注冊文件的存取以后會(huì)有專文來說明),如果您對注冊文件的存取及 API 的使用都很純熟的話,當(dāng)然沒問題,但是有些人對于注冊文件會(huì)有畏懼,這時(shí)候,您可以使用下面的方法:
Shell(”Start C:Test.txt“)
您完全不用知道這份文件的啟動(dòng)程序是什么?它放在什么地方?參數(shù) Start 便會(huì)自動(dòng)依照附文件名到注冊文件中找到啟動(dòng)程序來開啟該份文件案!不賴吧!
注一:在 Windows 95/98/NT平臺(tái)中, 什么副文件名之文件案, 該由什么執(zhí)行文件來啟動(dòng), 都設(shè)在關(guān)聯(lián)中,代碼為 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExtensions
例如: 名稱為 ”.DOC“ 之資料為 ”C:Progra~1Micros~2OfficeWINWORD.EXE ^.DOC“
名稱為 ”.TXT“ 之資料為 ”notepad.exe ^.txt“
注二:使用 Start 之唯一缺點(diǎn)為 ”會(huì)比直接指定執(zhí)行文件稍為慢 0.5-1 秒鐘.“
//////////////////////////////////////////////////////////////////////////////////// 如何找出 Windows 目錄的正確路徑?
有時(shí)候我們在程序中必須用到 Windows 的目錄,以存取 Windows 目錄下的文件,照理說,這應(yīng)該是最簡單的功能,前提是每個(gè)人在 Setup Windows 必須采用 Windows 的預(yù)設(shè)目錄名稱,也就是 C:Windows,但是常常不是這樣,有時(shí)候由於要使新舊版本共存,或者其他原因,有人會(huì)將 Windows 目錄改成 c:win95、c:win98、Windows95 或 Windows98......若是程序中必須用到 Windows 目錄,要找到正確的路徑,做法如下:
'在聲明區(qū)中加入以下聲明:
Const MAX_PATH = 260
Private Declare Function GetWindowsDirectory Lib ”kernel32“ Alias ”GetWindowsDirectoryA“(ByVal lpBuffer As String, ByVal nSize As Long)As Long
Public Function GetWinPath()Dim strFolder As String Dim lngResult As Long strFolder = String(MAX_PATH, 0)lngResult = GetWindowsDirectory(strFolder, MAX_PATH)If lngResult <> 0 Then GetWinPath = Left(strFolder, InStr(strFolder, Chr(0))1 Next lNum sGetFile = Mid(sGetFile, 2)'得到文件名 MsgBox sGetFile
//////////////////////////////////////////////////////////////////////////////////// 如何防止使用者按下 CTRL + ALT + DEL
有些時(shí)候,我們的應(yīng)用程序執(zhí)行時(shí),不希望使用者按下 CTRL + ALT + DEL 來異常結(jié)束程序或關(guān)機(jī),這時(shí)候我們可以在啟動(dòng)程序時(shí),將 CTRL + ALT + DEL 功能鍵之功能取消,然后在結(jié)束程序之前,再從新恢復(fù) CTRL + ALT + DEL 之功能。
在模組聲明區(qū)中加入以下聲明及模組:
Declare Function SystemParametersInfo Lib ”user32“ Alias ”SystemParametersInfoA“(ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long)As Long
Public Const SPI_SCREENSAVERRUNNING = 97
Public Sub Disable_Ctrl_Alt_Del()'讓 CTRL+ALT+DEL 失效 Dim AyW As Integer Dim TurFls As Boolean
AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, TurFls, 0)End Sub
Public Sub Enable_Ctrl_Alt_Del()'讓 CTRL+ALT+DEL 恢復(fù)功能 Dim AwY As Integer Dim TurFls As Boolean
AwY = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, TurFls, 0)End Sub
'實(shí)際使用時(shí),在 Form 中加入以下程序碼:
Private Sub Form_Load()Disable_Ctrl_Alt_Del End Sub
Private Sub Form_Unload(Cancel As Integer)Enable_Ctrl_Alt_Del End Sub
//////////////////////////////////////////////////////////////////////////////////// 如何取得文件大???
VB6 提供了一個(gè)新的物件模型,叫做 FSO(File System Object)物件模型,運(yùn)用它,我們可以很方便的處理磁盤、資料夾和文件的一些動(dòng)作。
FSO 物件模型含有好幾個(gè)物件,其中有一個(gè) File 物件是用來求得文件的相關(guān)資訊,在目前這個(gè)主題,我們就可以使用 File 物件!它有一個(gè)屬性是 Size,對文件來說就是指文件的大小(單位為位元組)。(注一)
雖然使用 File 物件的 Size 屬性就可以求得文件的大小,但是它有以下二個(gè)缺點(diǎn):
1、只能用于 VB6 以后的版本。
2、它不是 VB6 內(nèi)定的功能,必須另外引用 Scrrun.dll(Microsoft Scripting Runtime)才可以!
以下的二個(gè)方法就可以使用在所有的 VB 版本中(含 VB6),而且是 VB 內(nèi)定的功能:
1、FileLen 函數(shù):返回一個(gè) Long,代表一個(gè)文件的長度,單位是位元組。
語法:FileLen(pathname)' pathname 是全路徑之文件名稱 適用:取得一個(gè)尚未開啟的文件的長度大小(注二)
2、LOF 函數(shù):返回一個(gè) Long,單位為位元組,用來代表由 Open 陳述式所開啟的文件之大小。
語法:LOF(filenumber)' filenumber 是一個(gè)文件代碼 適用:取得一個(gè)已開啟的文件的長度大小
注一:File 物件的 Size 屬性除了可以求得一個(gè)文件的大小,也可以用來取得整個(gè)目錄的所有文件大?。?/p>
注二:使用 FileLen 函數(shù)時(shí),如果所指定的文件正在開啟中,則所返回的值是這個(gè)文件在開啟前的大小。
//////////////////////////////////////////////////////////////////////////////////// 如何移除或更改桌面背景的底色圖案(Wallpaper)?
SystemParametersInfo 這個(gè) API 可以設(shè)定許多 Windows 系統(tǒng)的功能參數(shù),而其中一個(gè)參數(shù)就是桌面底圖!通常一般的使用者會(huì)透過控制面板中的【顯示器】來設(shè)定桌面底圖。
在底下的范例中,我們使用 SPI_SETDESKWALLPAPER 這個(gè)參數(shù)及圖片文件名稱來設(shè)定新的桌面底圖,同時(shí)使用 SPIF_SENDWININICHANGE 來通知各個(gè)視窗這個(gè)改變。
'在表單的聲明區(qū)中加入以下聲明及常數(shù):
Private Declare Function SystemParametersInfo Lib ”user32“ Alias ”SystemParametersInfoA“(ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long)As Long
Const SPI_SETDESKWALLPAPER = 20 Const SPIF_UPDATEINIFILE = &H1 Const SPIF_SENDWININICHANGE = &H2
'在表單上加入一個(gè) CommandButton(Command1)來移除桌面底圖,程序碼如下:
Private Sub Command1_Click()Dim X As Long X = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ”(None)“, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)MsgBox ”桌面底圖(Wallpaper)已經(jīng)被移除“ End Sub
'在表單上加入另一個(gè) CommandButton(Command2)來更改桌面底圖,程序碼如下:
Private Sub Command2_Click()Dim FileName As String Dim X As Long FileName = ”c:windowstest.bmp“ X = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)MsgBox ”桌面底圖(Wallpaper)已經(jīng)被更改“ End Sub
//////////////////////////////////////////////////////////////////////////////////// 一個(gè)快速注冊 DLL 及 OCX 的方法
有時(shí)候我們在 VB 中要引用某一個(gè) DLL 或 OCX 時(shí),會(huì)出現(xiàn)文件未注冊的訊息,這時(shí),我們可以使用人工注冊的方法,也就是直接在命令列中使用 regsvr32.exe 來做,做法如下:
文件注冊:C:WindowsSystemRegsvr32.exe C:WindowsSystemTest.ocx 取消注冊:C:WindowsSystemRegsvr32.exe /u C:WindowsSystemTest.ocx
這些動(dòng)作我們也可以直接寫到程序中,使用 Shell 來執(zhí)行,但是我現(xiàn)在要說的,都不是上面提到的方法!
注意看羅!方法如下:
1、在資源管理器中找到 C:WindowsSystemRegsvr32.exe 并【復(fù)制】(按鼠標(biāo)右鍵選復(fù)制)
2、將目錄移到 C:WindowsSendTo 后,執(zhí)行【貼上快捷方式】(按鼠標(biāo)右鍵選貼上快捷方式)
3、將快捷方式名稱改成【REGISTER】
4、OK
現(xiàn)在,如果您想替某一個(gè)文件做注冊動(dòng)作,例如:C:WindowsSystemTest.ocx,您只要打開資源管理器,找到 C:WindowsSystemTest.ocx,按鼠標(biāo)右鍵選【傳送到】【REGISTER】即可完成注冊動(dòng)作了!
注:有一個(gè)地方要注意的是,Regsvr32.exe 只能注冊 32 位的文件!如果要用它來注冊 16 位的文件,會(huì)有錯(cuò)誤訊息產(chǎn)生。
//////////////////////////////////////////////////////////////////////////////////// 如何用TextBox打開和保存文件
作為輕量級的控件,TextBox控件使用率很高,但相關(guān)的資料極少談及如何用TextBox控件打開和保存文件,大都采用回避的態(tài)度,對VB初學(xué)者帶來很多不便。筆者近日為友人做一個(gè)英文朗讀軟件,按友人的要求,軟件要能象MS的記事本那樣能打開和保存文檔。其實(shí)實(shí)現(xiàn)方法并不復(fù)雜,現(xiàn)將心得寫出來,希望對大家有幫助。如果您有更好的方法,請來信:handanfang@163.net。
'新建標(biāo)準(zhǔn)EXE,加入一個(gè)TextBox控件,一個(gè)公共對話框,兩個(gè)菜單。
'打開
Private Sub mnuOpen_Click()CommonDialog1.Filter = ”文檔文件(*.txt)|*.txt|所有文件(*.*)|*.*“ CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #1 Text1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)Close #1 End Sub
'保存
Private Sub mnuSave_Click()On Error Resume Next
CommonDialog1.Filter =”文檔文件(*.txt)|*.txt|所有文件(*.*)|*.*“ CommonDialog1.ShowSave Open CommonDialog1.FileName For Output As #1 Print #1, Text1.Text Close 1 End Sub
TextBox只支持打開64K以下的文件,建議最好設(shè)置出錯(cuò)處理。以上程序在PWin98、VB6.0下調(diào)試通過。
//////////////////////////////////////////////////////////////////////////////////// 如何判斷目前文件資源管理器中,文件名稱之?dāng)U展文件名是顯示或隱藏?
由于我在集團(tuán)性的資訊處工作,所負(fù)責(zé)的公司系統(tǒng)有的是屬于外點(diǎn),例如潤泰建設(shè)有個(gè)單位是行銷業(yè)務(wù)處,他們的工作是賣公司蓋的房子,所以他們的業(yè)務(wù)人員平常都是待在各工地的接待中心,我替他們開發(fā)的銷售系統(tǒng)在工地的部份是屬于單機(jī)作業(yè)的,使用 Access 資料庫,每一個(gè)星期資料回傳總公司一次。業(yè)務(wù)人員由于流動(dòng)性大,不太了解系統(tǒng),有時(shí)候,系統(tǒng)出了問題,業(yè)務(wù)人員又搞不清楚狀況,于是我會(huì)要求他們將資料庫 sale.mdb 回傳公司,結(jié)果,常鬧笑話,原來他們回傳公司的,常常不是 sale.ldb 就是 sale.exe,為什么呢?
原因很簡單,因?yàn)樗麄兊奈募Y源管理器中,設(shè)定了將擴(kuò)展文件名隱藏起來,結(jié)果只看到三個(gè)不同圖示的 sale 文件(分別是 Sale.mdb、Sale.ldb、Sale.exe),不太會(huì)操作的業(yè)務(wù)人員根本分不清楚那一個(gè)圖示的 sale 文件才是資料庫文件案!
我們在 VB 的程序中要如何判斷,目前文件資源管理器中的設(shè)定是否顯示擴(kuò)展文件名呢?
Private Declare Function GetFileTitle Lib ”comdlg32.dll“ Alias ”GetFileTitleA"(ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer)As Integer Private Function HasExtension(sFileName As String)As Long Dim sTemp As String Dim lTemp As Long
sTemp = String(1, 0)lTemp = GetFileTitle(sFileName, sTemp, Len(sTemp))If lTemp < 0 Then HasExtension =-1: Exit Function sTemp = String(lTemp, 0)Call GetFileTitle(sFileName, sTemp, Len(sTemp))
If(Left$(Right$(Left$(sTemp, lTemp網(wǎng)站導(dǎo)航誠邀加盟友情鏈接-贊助本站 Copyright? 1999-2004 Programfan.com.All Rights Reserved 網(wǎng)站制作&維護(hù):Hannibal Email: yaoz@163.com 網(wǎng)站合作及廣告聯(lián)系:(021)28540908