這是我自己寫的一個進度條控件,如圖:
創(chuàng)新互聯(lián)公司是一家成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設,提供網(wǎng)頁設計,網(wǎng)站設計,網(wǎng)站制作,建網(wǎng)站,按需求定制開發(fā),網(wǎng)站開發(fā)公司,成立與2013年是互聯(lián)行業(yè)建設者,服務者。以提升客戶品牌價值為核心業(yè)務,全程參與項目的網(wǎng)站策劃設計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。
邊框粗細和邊框顏色以及進度條顏色都可以調(diào)。
進度條大小你可以自己拉伸。
同時,進度條還提供了豐富的動畫效果(如邊框閃爍效果【可關閉】,進度條滑動效果等。)
將邊框粗細調(diào)為0即可實現(xiàn)無邊框(同時邊框閃爍效果(見“Flash”屬性)也將關閉?。?/p>
進度值(見“ProgressValue”屬性)類型為Single(單精度浮點數(shù))
將我提供的DLL文件拖到工具箱即可安裝
只能用于Windows窗體應用程序!
目標平臺:.Net Framework 3.5
屬性說明:
1.BorderColor 用于調(diào)整邊框顏色
2.BorderWidth 用于調(diào)整邊框粗細
3.Flash 用于開啟、關閉邊框閃爍效果
4.ProgressValue 用于設置、查看進度值
5.ForeColor 用于設置進度條顏色
6.BackColor 用于設置控件背景色
附件如果丟失,請私信。
new
就是實例化,比如實例化一個類,你才能訪問,,
好比,你是張三,把你的地址告訴了我,我在能找到你家在哪,這個過程就可以稱為實例化。
使用New關鍵字建立一個新的對象和用它屬的類來定義是一樣的。New關鍵字可以被用作來建立一個窗體、類模塊以及集合的實例。用戶在設計的時候建立的每一個窗體都是一個類。New關鍵字能夠用來建立一個類的實例。
可以通過以下步驟來建立一個類的實例:
(1)在窗體上畫一個按鈕和幾個其他的控件。
(2)按鈕的Click事件過程加入以下代碼:
Dim
x
AS
New
Form1
x.Show
(3)運行程序,并且點擊幾次按鈕,把最前面的窗體移開,因為窗體是一個有可視界面的類,此時可以看見有很多窗體的拷貝,每一個窗體具有相同的控件,并且出現(xiàn)在一個地方。
(4)將列代碼加到按鈕的click事件過程中:
Dim
f
As
Form1
f=New
Form1
f.text="hello"
f.Show
使用New關鍵字可以從類模塊中定義的類中建立一個新的集合和對象,要知道它們怎樣工作,可以參考下面的例子:
(1)建立一個新的工程,并且在一個名為Form1的窗體上畫一個按鈕控件。
(2)在Project(項目)菜單下,選擇"Add
Class"給工程添加一個類
(3)把新的類命名為ShowMe.VB
(4)在該新類中加入如下代碼:
PUblic
Class
ShowMe
Sub
ShowFrm()
Dim
frmNew
As
Form1
frmNew=New
Form1
frmNew.Show()
frmNew.WindowState=1
End
Sub
End
Class
(5)在Button1_click事件的過程中加入如下代碼:Protected
Sub
Button1_Click(Byval
sender
As
System.Object,_
Byval
AS
System.EventArgs)
Dim
clsNew
As
New
ShowMe()
clsNew.ShowFrm()End
Sub
運行程序,并且點擊幾次按鈕,將看見每創(chuàng)建一個ShowMe類的新的實例時,在桌面上有一個最小化的窗體的圖標。
New關鍵字只能用來建立一個類的對象,不能建立一個基于基本的數(shù)據(jù)類型的對象,例如Integer。而且,不能建立一個基于一個具體對象的對象。例如,下面的代碼根據(jù)一個名為SomeClass的類,建立了一個名為Objx的對象,面后又錯誤地企圖根據(jù)對象Objx再建立一個其他的對象:
Dim
Objx
As
New
SomeClass()
Dim
Objx
AS
New
Objx()
以上代碼是非法的。
呵呵##~
Imports?System.Text
Imports?System.Runtime.InteropServices
Public?Class?Form1
'?相關API函數(shù)聲明,注釋掉的這里沒用到,但是也比較常用吧,這些函數(shù)的功能都能搜到。
Private?Declare?Function?FindWindow?Lib?"user32"?Alias?"FindWindowA"?(ByVal?lpClassName?As?String,?ByVal?lpWindowName?As?String)?As?IntPtr
Private?Declare?Function?FindWindowEx?Lib?"user32"?Alias?"FindWindowExA"?(ByVal?hWnd1?As?IntPtr,?ByVal?hWnd2?As?IntPtr,?ByVal?lpsz1?As?String,?ByVal?lpsz2?As?String)?As?IntPtr
Private?Delegate?Function?EnumChildProc(ByVal?hWnd?As?IntPtr,?ByVal?lParam?As?Integer)?As?Boolean
Private?Declare?Function?EnumChildWindows?Lib?"user32.dll"?(ByVal?hWndParent?As?IntPtr,?ByVal?lpEnumFunc?As?EnumChildProc,?ByVal?lParam?As?Integer)?As?Boolean
Private?Declare?Auto?Function?SendMessage?Lib?"User32.dll"?(ByVal?hWnd?As?IntPtr,?ByVal?Msg?As?Integer,?ByVal?wParam?As?Integer,?ByVal?lParam?As?String)?As?Integer
'Private?Declare?Function?CheckDlgButton?Lib?"user32"?Alias?"CheckDLGButtonA"?(ByVal?hDlg?As?IntPtr,?ByVal?nIDButton?As?IntPtr,?ByVal?wCheck?As?Integer)?As?Integer
Private?Declare?Function?GetClassName?Lib?"user32"?Alias?"GetClassNameA"?(ByVal?hWnd?As?IntPtr,?ByVal?lpClassName?As?StringBuilder,?ByVal?nMaxCount?As?Integer)?As?Integer
'Private?Declare?Function?GetWindowThreadProcessId?Lib?"user32"?Alias?"GetWindowThreadProcessId"?(ByVal?hwnd?As?IntPtr,?ByVal?lpdwProcessId?As?Long)?As?Integer
Private?Declare?Auto?Function?GetWindowTextLength?Lib?"user32"?Alias?"GetWindowTextLength"?(ByVal?hwnd?As?IntPtr)?As?Integer
Private?Declare?Function?GetWindowText?Lib?"user32"?Alias?"GetWindowTextA"?(ByVal?hwnd?As?IntPtr,?ByVal?lpString?As?StringBuilder,?ByVal?cch?As?Integer)?As?Integer
'?相關消息定義,也有沒用到的
Const?WM_SETTEXT?=?HC
Const?WM_GETTEXT?=?HD
'Const?WM_SETFOCUS?=?H7
'Const?WM_KILLFOCUS?=?H8
'Const?WM_CLOSE?=?H10
'Const?WM_SYSCOMMAND?=?H112
'Const?SC_CLOSE?=?HF060
'Const?SC_MINIMIZE?=?HF020
Const?BM_GETCHECK?=?HF0
Const?BM_SETCHECK?=?HF1
Const?BM_GETSTATE?=?HF2
Const?BM_SETSTATE?=?HF3
Const?BM_SETSTYLE?=?HF4
Const?BM_CLICK?=?HF5
'Const?BM_GETIMAGE?=?HF6
'Const?BM_SETIMAGE?=?HF7
Const?BST_UNCHECKED?=?O0
Const?BST_CHECKED?=?O1
Const?BST_INDETERMINATE?=?O2
'?儲存窗口句柄
Dim?WindowHandle?As?IntPtr
'?儲存兩個(或者多個)編輯框句柄
Dim?EditHandle?As?New?List(Of?IntPtr)
Dim?EditWindowsText?As?List(Of?String)
'?儲存復選框句柄
Dim?CheckHandle?As?IntPtr?=?0
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Button1_Click(sender,?e)
End?Sub
'?EnumChildWindows?回調(diào)函數(shù),該函數(shù)名作為API函數(shù)EnumChildWindows?的一個參數(shù)
'?該函數(shù)實現(xiàn)了枚舉各個子窗口,找出編輯框?qū)傩缘墓δ?/p>
Public?Function?EnumChildProcC(ByVal?hwnd?As?IntPtr,?ByVal?lParam?As?Integer)?As?Boolean
Dim?dwWindowClass?As?StringBuilder?=?New?StringBuilder(100)
'?獲得某一個句柄的類名
GetClassName(hwnd,?dwWindowClass,?100)
If?dwWindowClass.ToString.Contains("EDIT")?Or?dwWindowClass.ToString.Contains("Edit")?Then?????'?類名包含EDIT的為編輯框
EditHandle.Add(hwnd)????????????????????????'?存儲該句柄
End?If
'?返回?True?一直枚舉完
Return?True
End?Function
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
WindowHandle?=?FindWindow(vbNullString,?"登陸")
If?WindowHandle.ToInt32?=?0?Then
MsgBox("未捕獲到窗口"?+?"登陸")
Return
End?If
'?枚舉所有主窗口的子窗口(控件),枚舉時自動調(diào)用回調(diào)函數(shù),完成編輯框句柄的獲取
EnumChildWindows(WindowHandle,?AddressOf?EnumChildProcC,?0)
'?尋找復選框
CheckHandle?=?FindWindowEx(WindowHandle,?IntPtr.Zero,?vbNullString,?"記住密碼")
Dim?str?As?New?StringBuilder
Dim?j?As?Integer?=?0
'?對編輯框文本賦值
For?j?=?0?To?EditHandle.Count?-?1
SendMessage(EditHandle(j),?WM_SETTEXT,?0,?"Text")
'GetWindowText(EditHandle(j),?str,?20)
'EditWindowsText.Add(Str.ToString)
'Str.Clear()
Next
If?EditHandle.Count?=?0?Then
MsgBox("未找到輸入框!")
End?If????????
If?CheckHandle.ToInt32??0?Then
'CheckDlgButton(WindowHandle,?id,?1)
'?對復選框進行鼠標單擊操作
SendMessage(CheckHandle,?BM_CLICK,?0,?0)
'SendMessage(CheckHandle,?BM_SETCHECK,?True,?0)
End?If
End?Sub
End?Class