vb.net枚舉模塊 枚舉窗口

關于VB中的枚舉類型

應該是1

創(chuàng)新互聯主要從事成都網站設計、做網站、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務田家庵,十年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792

定義了一個枚舉類型Days,它包括7個成員,都省略了“常數表達式”,因此常數Sunday的值為0,

常數Monday的值為1,常數Tuesday的值為3

VB怎么枚舉窗體中所有子窗體句柄

VB 遍歷窗口所有子窗體句柄

Private Const GW_CHILD = 5

Private Const GW_HWNDFIRST = 0

Private Const GW_HWNDNEXT = 2

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

Private Sub FillChild(hWndParent As Long)

Dim hWndChild As Long

Dim szCaption As String

Dim buffer As String

Dim i As Long

hWndChild = GetWindow(hWndParent, GW_CHILD)

If (hWndChild = 0) Then Exit Sub

hWndChild = GetWindow(hWndChild, GW_HWNDFIRST)

If hWndChild = 0 Then Exit Sub

While (hWndChild 0)

szCaption = String$(255, 0)

GetClassName hWndChild, szCaption, 250

szCaption = Left$(szCaption, InStr(szCaption, String$(1, 0)) - 1)

buffer = CStr(hWndChild) "--" szCaption

i = GetWindowTextLength(hWndChild)

szCaption = String$(255, 0)

GetWindowText hWndChild, szCaption, 250

szCaption = Left$(szCaption, i)

buffer = buffer "--" szCaption

List1.AddItem buffer

FillChild hWndChild

hWndChild = GetWindow(hWndChild, GW_HWNDNEXT)

Wend

End Sub

Private Sub GetChildWindow(hwnd As Long)

Dim szCaption As String

Dim buffer As String

Dim i As Long

List1.Clear

szCaption = String$(255, 0)

GetClassName hwnd, szCaption, 250

szCaption = Left$(szCaption, InStr(szCaption, String$(1, 0)) - 1)

buffer = CStr(hwnd)

buffer = buffer "--" szCaption

i = GetWindowTextLength(hwnd)

szCaption = String$(255, 0)

GetWindowText hwnd, szCaption, 250

szCaption = Left$(szCaption, i)

buffer = buffer "--" szCaption

List1.AddItem buffer

FillChild hwnd

End Sub

調用方法

GetChildWindow hwnd'hwnd是指定的窗口句柄

結果以

窗體句柄--窗體類名稱--窗體Text

形式列在列表框List1中

VB.NET中的模塊

在C#中有 靜態(tài)類 的概念 自然里邊全部的方法都是靜態(tài)的 這意味著你可以直接通過 類名 方法名 去調用(例如System的Math類就是典型) 在VB NET中 沒有 靜態(tài)類 的概念(當然你可以用 單例模式 把構造函數弄成Private的方式 其它方法都是靜態(tài)的)如果某些方法需要被其它地方頻繁使用 可以創(chuàng)建 模塊 在VB NET中一旦創(chuàng)建了模塊 其中任何方法 屬性或者變量都可以被其它地方引用 因此適合全局情況下頻繁交互的情況(比如初始化加載的參數 可能后續(xù)程序要使用)等

現在問題在于 如果你把一個類似以下的模塊代碼封裝成DLL類庫 無論在C#或者是VB NET中都無法引用到其方法

Module A

Public Sub Test()

End Sub

End Module

或許你感到很奇怪——不是在VB NET中這樣定義一個Module就直接可以使用其內部方法了么?為什么封裝成類庫就不可以了呢?上網問了一些人 眾說紛紜 后來我在他人協(xié)助下終于成功解決了這個問題——解決方法很簡單——只要在Module前加Public

理由是 為了兼容C# VB NET由Module封裝成類庫中這個模塊不再是 模塊 而是一個標準的類了 如果這樣寫 那么在 NET中被理解成(C#)

internal A

{

public void Test()

{

}

}

整個模塊變成Internal的了!當然你到其它程序集中去引用就引用不到!而把類庫中的Module的修飾符改為Public就可以了 這就是MSDN那位友人給我最好的提示

雖然這個提示不是令我太滿意(因為要知道VB NET中可以直接不通過 類名 方式直接使用方法名) 但是這給了我很大的暗示 得出重要的結論

)VB NET中Module在制作成類庫時候等同于VB NET中的類的規(guī)則(里邊的方法都是靜態(tài)的) 默認情況下是Friend(C#是internal)

)根據結論 那么我們知道引用該DLL類庫的方法一定是 i)引用命名空間? ii)C#中直接 類名 方法名 對于VB NET 直接可以引用到方法名

lishixinzhi/Article/program/net/201311/12502

vb.net 能不能枚舉字符串?

枚舉的值只能是整數,但是枚舉常量的名字本身就是字符串啊,舉例:

Private Enum weekdays

星期日 = 0

星期一

星期二

星期三

End Enum

然后:

MsgBox(weekdays.星期日) '顯示0

MsgBox(weekdays.星期日.ToString) '顯示星期日

vb.net怎么枚舉父窗口下所有子窗口

Dim HanStr As String = ""

For Each Form In Me.MdiChildren

HanStr += Form.Handle.ToString

Next

MsgBox(HanStr)

新聞標題:vb.net枚舉模塊 枚舉窗口
本文鏈接:http://www.muchs.cn/article10/doseogo.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站設計、做網站、外貿建站外貿網站建設、微信公眾號、App開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

手機網站建設