分享

VB6 Add-Ins 自动添加控件前缀

 nxhujiee 2021-12-01
  以前在开发的过程中,总是制定一个命名规范,然后在使用中总是反复的查看手册,真是麻烦,今天我在给一个兄弟展示一个新作的VB6外接程序的时候,他就说能不能自动添加控件前缀,这样就不用死记硬背了,所以试验了一下,还好,挺简单的,主要代码如下:

None.gif Public  WithEvents CtlHandler  As  VBControlsEvents

None.gif ' 监控控件名称前缀
None.gif
Private   Sub  WatchNamePrefixion(ByVal VBControl  As  VBIDE.VBControl)
None.gif     Dim  FileContent  As   String
None.gif    FileContent  =  ReadAll(App.Path  &   " \ControlPrefixion.config " )
None.gif    FileContent  =   Replace (FileContent,  "   " ,  "" )
None.gif     Dim  Rows()  As   String
None.gif     Dim  Cols()  As   String
None.gif     Dim  i  As   Integer
None.gif     Dim  ii  As   Integer
None.gif    Rows  =   Split (FileContent, vbCrLf)
None.gif     For  i  =   LBound (Rows)  To   UBound (Rows)
None.gif        Cols  =   Split (Rows(i),  " = " )
None.gif         If   UBound (Cols)  =   1   Then
None.gif             If   UCase (VBA.TypeName(VBControl.ControlObject))  =   UCase (Cols( 0 ))  Then
None.gif                 If   UCase (VBA.Left(VBControl.Properties( " Name " ),  Len (Cols( 1 ))))  <>   UCase (Cols( 1 ))  Then
None.gif                    VBControl.Properties( " Name " )  =  Cols( 1 )  &  VBControl.Properties( " Name " )
None.gif                 End   If
None.gif                 Exit   For
None.gif             End   If
None.gif         End   If
None.gif     Next
None.gif     Erase  Rows
None.gif     Erase  Cols
None.gif End Sub
None.gif
None.gif Private   Sub  CtlHandler_ItemRenamed(ByVal VBControl  As  VBIDE.VBControl, ByVal OldName  As   String , ByVal OldIndex  As   Long )
None.gif    WatchNamePrefixion VBControl
None.gif End Sub

在这段代码中,主要是建立一个VB6 的外接程序,然后在ItemRenamed事件中,增加前缀就行了。

控件的前缀列表放到了ControlPrefixion.config文件中,如下:

3DPanel=pnl
ADOData=ado
Animatedbutton=ani
Checkbox=chk
Combobox=cbo
drop-downlistbox=cbo
Commandbutton=cmd
Commondialog=dlg
Communications=com
Data=dat
Data-boundcombobox=dbcbo
Data-boundgrid=dbgrd
Data-boundlistbox=dblst
Datacombo=dbc
Datagrid=dgd
Datalist=dbl
Datarepeater=drp
Datepicker=dtp
Directorylistbox=dir
Drivelistbox=drv
Filelistbox=fil
Flatscrollbar=fsb
Form=frm
Frame=fra
Gauge=gau
Graph=gra
Grid=grd
Hierarchicalflexgrid=flex
Horizontalscrollbar=hsb
Image=img
Imagecombo=imgcbo
ImageList=ils
Label=lbl
Lightweightcheckbox=lwchk
Lightweightcombobox=lwcbo
Lightweightcommandbutton=lwcmd
Lightweightframe=lwfra
Lightweighthorizontalscrollbar=lwhsb
Lightweightlistbox=lwlst
Lightweightoptionbutton=lwopt
Lightweighttextbox=lwtxt
Lightweightverticalscrollbar=lwvsb
Line=lin
Listbox=lst
ListView=lvw
MAPImessage=mpm
MAPIsession=mps
MCI=mci
Menu=mnu
Monthview=mvw
MSChart=ch
MSFlexgrid=msg
MSTab=mst
OLEcontainer=ole
Optionbutton=opt
Picturebox=pic
Pictureclip=clp
ProgressBar=prg
RemoteData=rd
RichTextBox=rtf
Shape=shp
Slider=sld
Spin=spn
StatusBar=sta
SysInfo=sys
TabStrip=tab
Textbox=txt
Timer=tmr
Toolbar=tlb
TreeView=tre
UpDown=upd
Verticalscrollbar=vsb

一旦加载了这个插件,当在窗体上增加了一个控件后,比如一个Command后,当在属性窗口中将名称改为“OK”后,系统自动增加“cmd”在控件名称前边,变成“cmdOK”,这样再也不用记住控件的前缀了。

有了这个,兄弟很高兴,至少可以将手册变得薄一点了。

在开发这个插件过程中,有点需要注意,就是一个公司总是有各种规范来规定程序员的代码开发规范,其实如果能够提供一些自动工具或者模板工具的话,程序员就不需要死记硬背了,所有的规范程序员也就自动遵守了,也就没有烦恼了,这样才是最好的办法,项目经理也就轻松了,^_^。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多