窗口邊框(FormBorderStyle)設(shè)為None,窗口(WindowState)設(shè)為Maximized,如果想讓窗口背景透明,將窗口背景顏色和TransparencyKey設(shè)為同一種顏色,按鈕用Label(標(biāo)簽)代替,背景設(shè)為Transparent,邊框設(shè)為None,文字位置一般是下中,Label控件支持無(wú)邊框。
西安網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),西安網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為西安上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的西安做網(wǎng)站的公司定做!
動(dòng)感效果在鼠標(biāo)事件(MouseDown按下,MouseUp抬起,MouseEnter進(jìn)入,MouseLeave離開)更換指定的圖片;
添加timer控件還可以使用動(dòng)畫
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ù)定義一個(gè)系統(tǒng)范圍的熱鍵。
函數(shù)原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk);
參數(shù):
hWnd:接收熱鍵產(chǎn)生WM_HOTKEY消息的窗口句柄。若該參數(shù)NULL,傳遞給調(diào)用線程的WM_HOTKEY消息必須在消息循環(huán)中中進(jìn)行處理。
id:定義熱鍵的標(biāo)識(shí)符。調(diào)用線程中的其他熱鍵不能使用同樣的標(biāo)識(shí)符。應(yīng)用功能程序必須定義一個(gè)0X0000-0xBFFF范圍的值。一個(gè)共享的動(dòng)態(tài)鏈接庫(kù)(DLL)必須定義一個(gè)0xC000-0xFFFF范圍的值伯GlobalAddAtom函數(shù)返回該范圍)。為了避免與其他動(dòng)態(tài)鏈接庫(kù)定義的熱鍵沖突,一個(gè)DLL必須使用GlobalAddAtom函數(shù)獲得熱鍵的標(biāo)識(shí)符。
fsModifoers:定義為了產(chǎn)生WM_HOTKEY消息而必須與由nVirtKey參數(shù)定義的鍵一起按下的鍵。該參數(shù)可以是如下值的組合:
MOD_ALT:按下的可以是任一Alt鍵。MOD_CONTROL:按下的可以是任一Ctrl鍵。
MOD_SHIFT:按下的可以是任一Shift鍵。
MOD_WIN:按下的可以是任一Windows按鍵。
vk:定義熱鍵的虛擬鍵碼。
返回值:若函數(shù)調(diào)用成功,返回一個(gè)非O值。若函數(shù)調(diào)用失敗,則返回值為0。若要獲得更多的錯(cuò)誤信息,可以調(diào)用GetLastError函數(shù)。
備注:當(dāng)某鍵被接下時(shí),系統(tǒng)在所有的熱鍵中尋找匹配者。一旦找到一個(gè)匹配的熱鍵,系統(tǒng)將把WM_HOTKEY消息傳遞給登記了該熱鍵的線程的消息隊(duì)列。該消息被傳送到隊(duì)列頭部,因此它將在下一輪消息循環(huán)中被移去。該函數(shù)不能將熱鍵同其他線程創(chuàng)建的窗口關(guān)聯(lián)起來(lái)。
若為一熱鍵定義的擊鍵己被其他熱鍵所定義,則RegisterHotKey函數(shù)調(diào)用失敗。
若hWnd參數(shù)標(biāo)識(shí)的窗口已用與id參數(shù)定義的相同的標(biāo)識(shí)符登記了一個(gè)熱鍵,則參數(shù)fsModifiers和vk的新值將替代這些參數(shù)先前定義的值。
若設(shè)置MOD_KEYUP位,則當(dāng)發(fā)生鍵被按下或被彈起的事件時(shí),窗口將發(fā)送WM_HOTKEY消息。
RegisterHotKey可以被用來(lái)在線程之間登記熱鍵。
UnregisterHotKey
函數(shù)功能:該函數(shù)釋放調(diào)用線程先前登記的熱鍵。
函數(shù)原型:BOOL UnregisterHotKey(HWND hWnd,int id);
參數(shù):
hWnd:與被釋放的熱鍵相關(guān)的窗口句柄。若熱鍵不與窗口相關(guān),則該參數(shù)為NULL。
id:定義被釋放的熱鍵的標(biāo)識(shí)符。
返回值:若函數(shù)調(diào)用成功,返回值不為0。若函數(shù)調(diào)用失敗,返回值為0。若要獲得更多的錯(cuò)誤信息,可以調(diào)用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
下面過(guò)程是注冊(cè)Ctrl+T的組合鍵為組合鍵,假如注冊(cè)成功,則返回true,反之注冊(cè)失敗則返回false,我們可以根據(jù)返回的結(jié)果判斷并提醒用戶注冊(cè)的情況。
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")) ’注冊(cè)Ctrl+T的組合鍵
If isResult = False Then
MsgBox("注冊(cè)熱鍵Ctrl+T失敗")
End If
End Sub
[apge]
下面過(guò)程為重載WndProc過(guò)程,響應(yīng)熱鍵并處理熱鍵,這里是用來(lái)隱藏和顯示程序主界面。
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_HOTKEY Then
System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")'運(yùn)行當(dāng)空接龍游戲
End If
MyBase.WndProc(m)
End Sub
最后在關(guān)閉窗體的時(shí)候釋放占用的熱鍵,如果前面注冊(cè)失敗的話,則會(huì)出現(xiàn)釋放失敗的結(jié)果。
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("路徑")打開指定程序
先列出這些吧
也容易,如果是黑白三個(gè)顏色加上相同的漸變量,彩色的是起始顏色的三個(gè)分量與終止顏色的對(duì)應(yīng)三個(gè)分量的差值,再除于相同的份數(shù),就得出三原色各自的步進(jìn)量。
窗體上放個(gè)圖片框試試下面代碼:
Private?Sub?PictureBox1_Paint(ByVal?sender?As?Object,?ByVal?e?As?System.Windows.Forms.PaintEventArgs)?Handles?PictureBox1.Paint
Dim?startColor?As?Color?=?Color.Red
Dim?endColor?As?Color?=?Color.Green
Dim?s?As?String?=?"vb.net?如何使文字能漸變顏色,就是顏色慢慢變淡然后在慢慢恢復(fù)?"
Dim?Steps?As?Integer?=?s.Length?\?2
Dim?StepR?As?Integer?=?(CInt(endColor.R)?-?startColor.R)?\?Steps
Dim?StepG?As?Integer?=?(CInt(endColor.G)?-?startColor.G)?\?Steps
Dim?StepB?As?Integer?=?(CInt(endColor.B)?-?startColor.B)?\?Steps
Dim?R?As?Integer?=?startColor.R
Dim?G?As?Integer?=?startColor.G
Dim?B?As?Integer?=?startColor.B
Dim?drawFont?As?New?System.Drawing.Font("Arial",?16)
Dim?X?As?Integer?=?50
For?i?As?Integer?=?1?To?Steps
Dim?drawBrush?As?New?SolidBrush(Color.FromArgb(R,?G,?B))
e.Graphics.DrawString(s.Substring(i?-?1,?1),?drawFont,?drawBrush,?X,?50.0)
X?+=?18
R?+=?StepR
G?+=?StepG
B?+=?StepB
Next
For?i?As?Integer?=?1?To?Steps
Dim?drawBrush?As?New?SolidBrush(Color.FromArgb(R,?G,?B))
e.Graphics.DrawString(s.Substring(i?+?Steps?-?1,?1),?drawFont,?drawBrush,?X,?50.0)
X?+=?18
R?-=?StepR
G?-=?StepG
B?-=?StepB
Next
End Sub
百度一下“枕善居”,里面有很多不錯(cuò)的VB.NET源碼,其中“多風(fēng)格漸變按鈕 Ver 1.0 For VB.NET 2008”也許能滿足你的要求。
您好,這種方法可以通過(guò)按鈕的MouseDown和MouseUp事件來(lái)實(shí)現(xiàn),比如說(shuō),當(dāng)單擊按鈕RedColor(RedColor為這個(gè)按鈕的Name屬性的屬性值)的時(shí)候,要使按鈕的顏色變成紅色,這可以在代碼視圖中的控件選擇下拉列表中選擇RedColor這個(gè)控件,然后在右邊的事件下拉列表中選擇MouseDown事件(當(dāng)按下鼠標(biāo)時(shí)發(fā)生),這時(shí),Visual Studio會(huì)自動(dòng)生成如下代碼:
Private Sub RedColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles RedColor.MouseDown
End Sub
接下來(lái)就在當(dāng)前生成的代碼中寫入如下代碼:
RedColor.BackColor = Color.FromArgb(255, 0, 0)
這句代碼的作用是利用Color下的FromArgb方法來(lái)設(shè)置RGB顏色參數(shù),在RGB顏色系統(tǒng)中,R代表紅色,G代表綠色,B代表藍(lán)色,根據(jù)這三種顏色的不同程度的調(diào)和,就會(huì)得到不同的顏色,如果您要得到深色的天藍(lán)色,則可以設(shè)置FromArgb(0, 191, 255),這個(gè)顏色轉(zhuǎn)換為HTML中的RGB顏色就是#00BFFF。
當(dāng)然顏色還原最好是寫在MouseUp事件里面,這樣就不必在單擊其他按鈕時(shí)來(lái)還原上一次按下的按鈕的顏色,在這里,為了方便描述,我們假設(shè)按鈕的默認(rèn)顏色為白色,也就是FromArgb方法設(shè)置為FromArgb(255, 255, 255)的時(shí)候,所標(biāo)示的顏色就是白色
所以選擇了RedColor按鈕的MouseUp事件后,Visual Studio會(huì)自動(dòng)生成下列代碼:
Private Sub RedColor_MouseUp(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles RedColor.MouseUp
End Sub
MouseUp的含義是當(dāng)鼠標(biāo)彈起時(shí)發(fā)生,所以在這個(gè)事件就可以設(shè)置按鈕顏色的還原,即添加下列代碼來(lái)實(shí)現(xiàn):
RedColor.BackColor = Color.FromArgb(255, 255, 255)
當(dāng)然,這就編寫好了一個(gè)按鈕按下時(shí)變色,回彈時(shí)還原的功能,至于另外一個(gè)按鈕的功能,這與這個(gè)按鈕的功能一樣,只是代碼有一些細(xì)微的差別而已,假設(shè)這個(gè)按鈕的Name屬性的屬性值為BlueColor,相應(yīng)的代碼對(duì)應(yīng)如下:
Private Sub BlueColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BlueColor.MouseDown
BlueColor.BackColor = Color.FromArgb(0, 0, 255) '藍(lán)色的FromArgb
End Sub
Private Sub BlueColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BlueColor.MouseDown
BlueColor.BackColor = Color.FromArgb(255, 255, 255)
End Sub
另外,為了避免代碼的冗余,可以將RedColor和BlueColor的MouseUp事件進(jìn)行合并,這合并后的代碼如下:
Private Sub BlueColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BlueColor.MouseDown, RedColor.MouseUp
BlueColor.BackColor = Color.FromArgb(255, 255, 255)
RedColor.BackColor = Color.FromArgb(255, 255, 255)
End Sub
當(dāng)然,這個(gè)你只要分析了控件事件代碼的基本結(jié)構(gòu),一切就一目了然了,控件事件代碼的基本結(jié)構(gòu)如下:
[作用域] Sub 事件名([參數(shù)列表]) Handles 控件事件1 [, 控件事件2, 控件事件3...]
[事件代碼區(qū)域]
End Sub
如果此回答對(duì)您有幫助,別忘了采納哦,如果沒有解決您的問題,您可以在互聯(lián)網(wǎng)上尋找更多關(guān)于此問題的解決方案,謝謝!
文章題目:包含vb.net設(shè)計(jì)漸變按鍵的詞條
文章鏈接:http://www.rwnh.cn/article48/dssdihp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
營(yíng)銷型網(wǎng)站建設(shè)知識(shí)