新聞中心
怎么在VB或Delphi里做漂亮的UI界面呢?
其實他們用的都是自己的界面庫,自己做難度很大
創(chuàng)新互聯(lián)建站長期為上千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為小店企業(yè)提供專業(yè)的成都做網站、成都網站建設、成都外貿網站建設,小店網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
你用一些免費的界面庫巴,搜索下界面庫就可以了
vb.net 如何制作圖標按鈕 ?急急急!!在線等!
窗口邊框(FormBorderStyle)設為None,窗口(WindowState)設為Maximized,如果想讓窗口背景透明,將窗口背景顏色和TransparencyKey設為同一種顏色,按鈕用Label(標簽)代替,背景設為Transparent,邊框設為None,文字位置一般是下中,Label控件支持無邊框。
動感效果在鼠標事件(MouseDown按下,MouseUp抬起,MouseEnter進入,MouseLeave離開)更換指定的圖片;
添加timer控件還可以使用動畫
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Label1.Refresh()
End Sub
快捷鍵用熱鍵
RegisterHotKey
函數(shù)功能:該函數(shù)定義一個系統(tǒng)范圍的熱鍵。
函數(shù)原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk);
參數(shù):
hWnd:接收熱鍵產生WM_HOTKEY消息的窗口句柄。若該參數(shù)NULL,傳遞給調用線程的WM_HOTKEY消息必須在消息循環(huán)中中進行處理。
id:定義熱鍵的標識符。調用線程中的其他熱鍵不能使用同樣的標識符。應用功能程序必須定義一個0X0000-0xBFFF范圍的值。一個共享的動態(tài)鏈接庫(DLL)必須定義一個0xC000-0xFFFF范圍的值伯GlobalAddAtom函數(shù)返回該范圍)。為了避免與其他動態(tài)鏈接庫定義的熱鍵沖突,一個DLL必須使用GlobalAddAtom函數(shù)獲得熱鍵的標識符。
fsModifoers:定義為了產生WM_HOTKEY消息而必須與由nVirtKey參數(shù)定義的鍵一起按下的鍵。該參數(shù)可以是如下值的組合:
MOD_ALT:按下的可以是任一Alt鍵。MOD_CONTROL:按下的可以是任一Ctrl鍵。
MOD_SHIFT:按下的可以是任一Shift鍵。
MOD_WIN:按下的可以是任一Windows按鍵。
vk:定義熱鍵的虛擬鍵碼。
返回值:若函數(shù)調用成功,返回一個非O值。若函數(shù)調用失敗,則返回值為0。若要獲得更多的錯誤信息,可以調用GetLastError函數(shù)。
備注:當某鍵被接下時,系統(tǒng)在所有的熱鍵中尋找匹配者。一旦找到一個匹配的熱鍵,系統(tǒng)將把WM_HOTKEY消息傳遞給登記了該熱鍵的線程的消息隊列。該消息被傳送到隊列頭部,因此它將在下一輪消息循環(huán)中被移去。該函數(shù)不能將熱鍵同其他線程創(chuàng)建的窗口關聯(lián)起來。
若為一熱鍵定義的擊鍵己被其他熱鍵所定義,則RegisterHotKey函數(shù)調用失敗。
若hWnd參數(shù)標識的窗口已用與id參數(shù)定義的相同的標識符登記了一個熱鍵,則參數(shù)fsModifiers和vk的新值將替代這些參數(shù)先前定義的值。
若設置MOD_KEYUP位,則當發(fā)生鍵被按下或被彈起的事件時,窗口將發(fā)送WM_HOTKEY消息。
RegisterHotKey可以被用來在線程之間登記熱鍵。
UnregisterHotKey
函數(shù)功能:該函數(shù)釋放調用線程先前登記的熱鍵。
函數(shù)原型:BOOL UnregisterHotKey(HWND hWnd,int id);
參數(shù):
hWnd:與被釋放的熱鍵相關的窗口句柄。若熱鍵不與窗口相關,則該參數(shù)為NULL。
id:定義被釋放的熱鍵的標識符。
返回值:若函數(shù)調用成功,返回值不為0。若函數(shù)調用失敗,返回值為0。若要獲得更多的錯誤信息,可以調用GetLastError函數(shù)。
1、首先定義所需要用到的常量
如圖所示,在窗體代碼后定義常量和API函數(shù)
代碼如下:
Public Const WM_HOTKEY As Integer = H312
Public Const MOD_ALT As Integer = H1
Public Const MOD_CONTROL As Integer = H2
Public Const MOD_SHIFT As Integer = H4
Public Const GWL_WNDPROC As Integer = (-4)
Public Declare Auto Function RegisterHotKey Lib "user32.dll" Alias "RegisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean
Public Declare Auto Function UnRegisterHotKey Lib "user32.dll" Alias "UnregisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer) As Boolean
下面過程是注冊Ctrl+T的組合鍵為組合鍵,假如注冊成功,則返回true,反之注冊失敗則返回false,我們可以根據(jù)返回的結果判斷并提醒用戶注冊的情況。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim isResult As Boolean
isResult=RegisterHotKey(Handle, 0, MOD_CONTROL, Asc("T")) ’注冊Ctrl+T的組合鍵
If isResult = False Then
MsgBox("注冊熱鍵Ctrl+T失敗")
End If
End Sub
[apge]
下面過程為重載WndProc過程,響應熱鍵并處理熱鍵,這里是用來隱藏和顯示程序主界面。
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_HOTKEY Then
System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")'運行當空接龍游戲
End If
MyBase.WndProc(m)
End Sub
最后在關閉窗體的時候釋放占用的熱鍵,如果前面注冊失敗的話,則會出現(xiàn)釋放失敗的結果。
Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
Dim isResult As Boolean
isResult=UnRegisterHotKey(Handle, 0)
End Sub
雙擊打開指定的程序
Private Sub Label1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.DoubleClick
System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")
End Sub
System.Diagnostics.Process.Start("路徑")打開指定程序
先列出這些吧
VB.NET用子線程進行大批量數(shù)據(jù)傳輸,UI卡死,請高手指教。代碼如下
試試這個怎么樣,添加在子進程里面,就加在你批量傳輸代碼里的每一個傳輸后面,也就是大批量中的每傳輸一個數(shù)據(jù)就暫停一下,而不是每一個大批量才暫停一下
System.Threading.Thread.Sleep(10) '讓它走慢一點
VB.net一個很簡單的UI問題
花了二十分鐘給你寫了代碼,已測試。建議學習并使用System.Drawing繪制。
主要是掌握Graphics.FillRectangle和DrawString的使用。
Imports?System.Drawing
Public?Class?進度條UI
Public?上面筆刷?As?SolidBrush?=?New?SolidBrush(Color.FromArgb(192,?175,?238,?238))
Public?下面筆刷?As?SolidBrush?=?New?SolidBrush(Color.FromArgb(192,?30,?144,?255))
Public?文字筆?As?SolidBrush?=?New?SolidBrush(Color.FromArgb(255,?255,?255,?255))
Public?字體?As?Font?=?New?Font("微軟雅黑",?14.0)
Public?文字格式?As?StringFormat?=?New?StringFormat()?With
{.Alignment?=?StringAlignment.Center,?.LineAlignment?=?StringAlignment.Center}
'''?summary
'''?繪制指定進度的圖像。
'''?當進度變化時調用一次本方法,建議將創(chuàng)建的Graphics對象保存到變量而不要重復創(chuàng)建。。
'''?/summary
'''?param?name="控件"繪制到此控件的工作區(qū)/param
'''?param?name="g"繪制到控件的Graphics對象,例如?Button1.CreateGraphics()/param
'''?param?name="進度"進度百分比實數(shù),57%?=?0.57/param
Public?Sub?繪制(ByRef?控件?As?Control,?ByRef?g?As?Graphics,?ByVal?進度?As?Double)
Dim?矩形?=?控件.ClientRectangle?'獲取控件的工作區(qū)矩形
Dim?下面高度?=?CInt(矩形.Height?*?進度)?'獲取下面顏色塊的高度
Dim?中間位置?=?矩形.Top?+?矩形.Height?-?下面高度?'獲取中間分界線的Y坐標
Dim?上矩形?=?New?Rectangle(矩形.X,?矩形.Y,?矩形.Width,?矩形.Height?-?下面高度)
Dim?下矩形?=?New?Rectangle(矩形.X,?中間位置,?矩形.Width,?下面高度)
g.FillRectangle(上面筆刷,?上矩形)
g.FillRectangle(下面筆刷,?下矩形)
'繪制文字
Dim?文字?As?String?=?String.Format("{0:0.00}%",?進度?*?100)
g.DrawString(文字,?字體,?文字筆,?矩形,?文字格式)
End?Sub
End?Class
下面是Form1窗體的代碼:添加一個Button1和Timer1控件,將Button1尺寸拖大點
Public?Class?Form1
Public?g?As?Graphics
Public?進度條UI?As?New?進度條UI
Public?進度?As?Double
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
g?=?Button1.CreateGraphics()
Timer1.Enabled?=?Not?Timer1.Enabled
End?Sub
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
進度?+=?0.01
進度條UI.繪制(Button1,?g,?進度)
End?Sub
End?Class
用VB.NET輕松制作特效窗體
體是Windows應用程序的基礎 新一代的開發(fā)工具Visual Basic Net為設計制作窗體提供了更多簡單而豐富的方法 無需再求助于復雜而易錯的API函數(shù) 我們就可以輕松制作多種特效窗體 輕松制作透明窗體VB NET可以輕松制作出任一透明度的窗體 我們只要在窗體的 屬性 窗口中 將 Opacity 屬性設置為一個介于 (完全透明)與 (完全不透明)之間的值就可以了 Dim frm As FrmTrans = New FrmTrans()frm Opacity = frm ShowDialog() 輕松制作始終位于最上層的窗體在VB 中 要制作一個始終位于最上層的窗體我們只能求助于令人頭痛的API函數(shù) 然而在 NET 中 我們只要簡單設置窗體的 TopMost 屬性就可實現(xiàn)同樣效果了!例如 Dim frm As frmTopMost = New frmTopMost()frm TopMost = Truefrm Show() 輕松制作不可見的窗體如果要編寫一個不讓別人發(fā)現(xiàn)的隱藏程序 制作不可見的窗體就是必須實現(xiàn)的第一步 窗體的可見性通常由 Visible 屬性控制 但是 如果希望 Windows 應用程序的主窗體在應用程序啟動時不可見 您將會發(fā)現(xiàn)將它的 Visible 屬性設置為 False 的方法無效 窗體總會自己顯示出來(這是因為 啟動窗體的生存期決定了應用程序的生存期) 雖然如此 我們還是可以通過簡單將應用程序的啟動設置為一個模塊 從而從窗體的生存期分出應用程序的生存期 輕松實現(xiàn)不可見的窗體 在下面這個例子中 窗體在特定的時間內自動隱藏 ( )在 Visual Basic 中 右擊項目并選擇 添加模塊 以將模塊添加到 Windows 應用程序 ( )在已添加的模塊(或類)內 創(chuàng)建可作為項目啟動對象的 Main 函數(shù) Sub main()Dim f As New Form ()f Visible = FalseWhile Hour(Date Now) 如果當前時間早于 點 窗體自動隱藏Application DoEvents()End Whilef ShowDialog()End Sub 輕松編寫托盤程序托盤程序作為一類特殊的窗體 其快捷圖標顯示在系統(tǒng)托盤中 窗體本身則隱藏不可見 在 NET之前版本的VB中編寫托盤程序是十分困難的 但是VB NET提供的新的NotifyIcon組件卻使VB初學者也能輕松編寫一個這樣的程序 新建 Windows應用程序 設置主窗體Opacity屬性為 FormBorderStyle屬性為None ShowInTaskbar屬性為False 這樣窗體將在啟動后隱藏 在窗體上放置一個NotifyIcon組件NotifyIcon 一個ContextMenu(彈出菜單)組件ContextMenu 并根據(jù)需要為ContextMenu 添加菜單項 設置NotifyIcon 的ICON屬性 這個圖標就是應用程序出現(xiàn)在系統(tǒng)托盤中的快捷圖標 設置NotifyIcon 的Text屬性為 VB NET托盤程序 這就是鼠標移動到托盤圖標時彈出的文字說明 設置NotifyIcon 的ContextMenu屬性為ContextMenu 也就是右鍵單擊快捷圖標時的彈出菜單為ContextMenu OK 按F 運行!幾乎不用編寫代碼 一個托盤程序就這樣輕松實現(xiàn)了 lishixinzhi/Article/program/net/201311/13831
用VB.NET開發(fā)的應用程序,大家用什么軟件或第三方控件做UI界面的編碼???
Visual Studio?2013
Microsoft Visual Studio(簡稱VS)是美國微軟公司的開發(fā)工具包系列產品。VS是一個基本完整的開發(fā)工具集,它包括了整個軟件生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發(fā)環(huán)境(IDE)等等。所寫的目標代碼適用于微軟支持的所有平臺,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft?Silverlight?及Windows Phone。?Visual Studio是目前最流行的Windows平臺應用程序的集成開發(fā)環(huán)境。最新版本為 Visual Studio 2013 版本,基于.NET Framework?4.5.1 。
分享標題:vb.net怎么做ui VBNET程序設計
網頁網址:http://fisionsoft.com.cn/article/hgedhe.html