小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

學(xué)習(xí)使用microsoft windows common controls 6.0 (sp6)中幾個(gè)常用控件

 szrzp 2012-02-04
這幾個(gè)控件是:Toolbar、Imagelist、Statusbar、Treeview、Listview

這只是本人的學(xué)習(xí)體會(huì),水平有限,謬誤之處一定不少,歡迎斧正。

為確定起見,模仿資源管理器做一個(gè)示例。

一、具體有下面一些功能:

1、窗體自帶一個(gè)用Toolbar生成的菜單

2、左邊是Treeview控件,用來顯示文件夾,每個(gè)節(jié)點(diǎn)表示一個(gè)文件夾

3、右邊是Listview控件,用來顯示左邊選中節(jié)點(diǎn)(文件夾)下一級(jí)的文件夾和文件,每個(gè)Item表示一個(gè)文件夾或者一個(gè)文件

4、下面是Strtusbar控件,顯示一些系統(tǒng)狀態(tài)信息,同時(shí)第六個(gè)窗格顯示即時(shí)操作的動(dòng)作

5、左邊的Treeview可以進(jìn)行的操作有
a、添加節(jié)點(diǎn)(同級(jí)或下級(jí)節(jié)點(diǎn))
b、修改節(jié)點(diǎn)名稱
c、刪除節(jié)點(diǎn)
d、拖動(dòng)一個(gè)節(jié)點(diǎn)使其成為另一個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)(在合法的條件下)
e、可以把外部的文件夾或者文件拖放到節(jié)點(diǎn)下,并保存到數(shù)據(jù)庫

6、右邊的Listview可以進(jìn)行的操作有
a、修改Item的名稱
b、刪除Item
c、拖動(dòng)一個(gè)Item使其成為另一個(gè)節(jié)點(diǎn)下的文件夾或者文件
d、可以將外部的文件夾或者文件拖放到Listview里,使其成為當(dāng)前節(jié)點(diǎn)下的子文件夾或者文件
e、可以改變Listview的樣式(這里只用了二種樣式)
f、可以按第一、第二或第四列排序

先看一下示例的演示
YS.gif
2010-9-9 14:24:46 上傳
下載附件 (436.36 KB)


二、本示例涉及內(nèi)容有:
1、建表,字段,數(shù)據(jù)類型,表間關(guān)系
2、建窗體,窗體式樣,在窗體添加控件
3、建模塊,自定義函數(shù),事件過程
4、自動(dòng)化對象:adodb.connection、adodb.recordset、filesystemobject、dictionary
5、sql語句中的select語句,update語句,insert語句,delete語句
6、ado連接,ado記錄集,ado讀寫大字段
7、使用記錄集
8、變量、變量類型轉(zhuǎn)換、數(shù)組
9、用遞歸遍歷指定的文件夾中的所有文件夾和文件、用遞歸遍歷Treeview控件指定節(jié)點(diǎn)下的所有節(jié)點(diǎn)
10、Access自帶的一些功能
11、自定義快捷菜單
12、imagelist,treeview,listwiew,toolbar,progressbar,statusbar等控件的初始化、加載、卸載等。

db1.rar

三、下面來一步步編寫這個(gè)示例

1、先新建一個(gè)mdb,然后新建一個(gè)窗體命名為frmMain,對窗體的式樣進(jìn)行一些設(shè)置后保存

2、然后在vba窗體里,引用microsoft windows common controls 6.0 (sp6)

3、按照從簡至繁的原則,從Toolbar開始,看名稱知道是一個(gè)工具欄控件

a、在窗體添加一個(gè)Toolbar控件
在窗體的設(shè)計(jì)視圖中,打開工具箱,找到Microsoft Toolbar Control 6.0,將其添加到窗體頁眉,適當(dāng)調(diào)整一下大小。
命名為Toolbar0


b、在窗體添加一個(gè)Imagelist控件
Toolbar中的Botton是可以帶圖標(biāo)的。為此,在窗體上添加一個(gè)Imagelist做為圖標(biāo)來源。
在窗體設(shè)計(jì)視圖,從工具箱中找到Microsoft Imagelist Control 6.0 (sp6),將其添加到窗體
命名為Imagelist3,選擇屬性對話框,為它添加圖標(biāo)


c、設(shè)置Toolbar,有二種方法,一種是在Toolbar的屬性對話框中直接設(shè)置。另一種是用代碼設(shè)置

這里采用第一種方法設(shè)置屬性
08.JPG

用第二種方法添加Button和ButtonMenu

添加Button
語法是:Toolbar.Buttons.Add Index, Key, Text, Type, Face

如果這個(gè)Button是下拉式的,還可以添加第二層ButtonMenu
語法是:Toolbar.Buttons(Index).ButtonMenus.Add Index, Key, Text


d、因?yàn)橛玫氖莂ccess,理所當(dāng)然用數(shù)據(jù)表來保存Toolbar的各項(xiàng)參數(shù),創(chuàng)建二個(gè)表

一個(gè)命名為tblTbrBtn,保存Button參數(shù)
09.JPG

另一個(gè)命名為tblTbrBtnMenu,保存ButtonMenu參數(shù)
10.JPG

二個(gè)表之間用ID和PID組成一對多關(guān)系,并鉤選實(shí)施參照完整性、級(jí)聯(lián)更新和級(jí)聯(lián)刪除
11.JPG

e、在表中輸入數(shù)據(jù)
12.JPG

f、在窗體加載事件中輸入代碼,加載Toolbar

Private Sub Form_Load()
加載Toolbar Me.Toolbar0
End Sub

g、下面是加載Toolbar過程,新建一個(gè)模塊,命名為modToolbar,將下面的過程復(fù)制到模塊

Sub 加載Toolbar(ByVal objTbr As Object, ByVal objImglist As Object)
Dim Rs As Object
With objTbr
.Top = 0
.Left = 0
.Width = Forms("frmMain").InsideWidth
Set Rs = CurrentDb.OpenRecordset("select * from tblTbrBtn order by id")
Do Until Rs.EOF
.Buttons.Add CInt(Rs(0)), CStr(Rs(1)), CStr(Rs(2)), CStr(Rs(3)), CInt(Rs(4))
Rs.movenext
Loop
Set Rs = Nothing
Set Rs = CurrentDb.OpenRecordset("select * from tblTbrBtnMenu order by pid, id")
Do Until Rs.EOF
.Buttons(CInt(Rs(1))).ButtonMenus.Add CInt(Rs(0)), CStr(Rs(2)), CStr(Rs(3))
Rs.movenext
Loop
Set Rs = Nothing
End With
End Sub

h、加載完成后的窗體,圖13
13.JPG


i、為所有的Button和ButtonMenu的單擊事件指定過程

Private Sub Toolbar0_ButtonClick(ByVal Button As Object)
If Button.Key = "Exit" Then
DoCmd.Close acForm, Me.Name
Else
TbrClick Button.Key
End If
End Sub

Private Sub Toolbar0_ButtonMenuClick(ByVal ButtonMenu As Object)
TbrClick ButtonMenu.Key
End Sub

j、下面的按鈕過程放在模塊modToolbar中
Sub TbrClick(ByVal strAction As String)
MsgBox "當(dāng)前調(diào)用的過程:" & strAction
End Sub

k、點(diǎn)擊后的效果。至于調(diào)用的過程,也放在同一個(gè)模塊中,如何寫代碼等具體使用時(shí)繼續(xù)。

12.JPG(103.27 KB, 下載次數(shù): 6)

12.JPG

4、Statusbar控件,看名稱就知道是狀態(tài)欄控件。接下來操作與Toolbar類似
a、在窗體頁腳添加一個(gè)Statusbar控件,命名為Statusbar0,適當(dāng)調(diào)整一下大小

b、創(chuàng)建一個(gè)數(shù)據(jù)表用來保存控件的參數(shù),命名為tblStatusbar,并輸入數(shù)據(jù)
16.JPG


c、添加Panel
語法:Statusbar.Panels.Add index, key, text, Style
其中style有幾個(gè)特定的值是用來顯示電腦硬件信息的,這時(shí)候的text是默認(rèn)的
d、添加Panel以后,對每一個(gè)Panel的屬性進(jìn)行設(shè)置
e、在窗體的加載事件中添加一句,成為:
Private Sub Form_Load()
加載Toolbar Me.Toolbar0
加載StatusBar Me.StatusBar0, Me.ImageList3.Object
End Sub
f、下面是加載過程。新建一個(gè)模塊,命名modStatusbar,把下面的代碼復(fù)制進(jìn)去
Sub 加載StatusBar(ByVal objStatusBar As Object, ByVal objImagelist As Object)
Dim Rs As Object
With objStatusBar
.Top = 0
.Left = 0
.Width = Forms("frmMain").InsideWidth
Set Rs = CurrentDb.OpenRecordset("select * from tblStatusbar order by id")
Do Until Rs.EOF
If IsNull(Rs(2)) Then
.Panels.Add CInt(Rs(0)), Rs(1), , CInt(Rs(3))
ElseIf Rs("strtext") = "currentuser" Then
.Panels.Add CInt(Rs(0)), Rs(1), CurrentUser(), CInt(Rs(3))
Else
.Panels.Add CInt(Rs(0)), Rs(1), Rs(2), CInt(Rs(3))
End If
With .Panels(Int(Rs(0)))
If CInt(Rs(4)) <> 0 Then
.Picture = objImagelist.ListImages(CInt(Rs(4))).Picture
End If
.Alignment = Rs(5)
.AutoSize = Rs(6)
.Bevel = Rs(7)
.Width = Rs(8)
.ToolTipText = Rs(9)
End With
Rs.movenext
Loop
Set Rs = Nothing
End With
End Sub
g、其中第六個(gè)Panel是用來顯示用戶的操作信息的,當(dāng)用戶進(jìn)行不同的操作時(shí),提示簡短的文字
過程如下,可以在需要的地方調(diào)用
Sub pnlEditText(ByVal strPnltext As String)
Forms("frmMain").Controls("StatusBar2").Panels(6).Text = strPnltext
End Sub
h、然后把原來在modToolbar中的那個(gè)點(diǎn)擊事件過程中msgbox顯示的信息,改到用Ststusbar來顯示。
Msgbox "當(dāng)前調(diào)用的過程:" & strAction
改為
pnlEditText "當(dāng)前調(diào)用的過程:" & strAction
i、加載Toolbar和Statusbar以后的窗體,圖18

18.JPG

三個(gè)比較簡單的控件已經(jīng)ok了。重點(diǎn)是如何設(shè)計(jì)出合適的數(shù)據(jù)表并且添加合適的數(shù)據(jù),然后創(chuàng)建合適的記錄集來對控件進(jìn)行加載。
接下去是二個(gè)相對要復(fù)雜一些的控件Treeview和Listview,暫時(shí)先到這里。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多