這個問題的本質(zhì)就是隨機二字,無論c/s還是b/s里面的label1 ,只要隨機設(shè)置字體顏色屬性即可。而相關(guān)屬性我相信您肯定知道,關(guān)鍵是怎樣隨機。vb.net里面有一個隨機函數(shù),只要利用該隨機函數(shù),隨機生成相應(yīng)的顏色即可,然后把隨機顏色賦值給label的屬性
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供奇臺網(wǎng)站建設(shè)、奇臺做網(wǎng)站、奇臺網(wǎng)站設(shè)計、奇臺網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、奇臺企業(yè)網(wǎng)站模板建站服務(wù),十余年奇臺做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
R/G/B值最小是0最大是255屬Byte值類型
Dim cr As Color = 控件.BackColor '獲取控件背景色
Dim alpha As Byte = cr.A '透明度
Dim R As Byte = cr.R 'R值
Dim G As Byte = cr.G 'G值
Dim B As Byte = cr.B 'B值
Dim outAcr As Color = Color.FromArgb(alpha, R, G, B) '創(chuàng)建帶有透明通道的ARGB顏色
Dim outcr As Color = Color.FromArgb(R, G, B) '創(chuàng)建不透明的RGB顏色
加入一個TextBox控件,一個Command控件
代碼:
Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hWnd As Long) As Long
Private Sub Command1_Click()
Dim Color As Long
WindowDC = GetWindowDC(0) '獲取屏幕的設(shè)備場景
Color = GetPixel(WindowDC, 500, 100) '獲指定點的顏色
'分解RGB顏色值
R = (Color Mod 256) '紅色
b = (Int(Color \ 65536)) '藍色
G = ((Color - (b * 65536) - R) \ 256) '綠色
Text1.BackColor = RGB(R, G, b)
End Sub
您好,這種方法可以通過按鈕的MouseDown和MouseUp事件來實現(xiàn),比如說,當(dāng)單擊按鈕RedColor(RedColor為這個按鈕的Name屬性的屬性值)的時候,要使按鈕的顏色變成紅色,這可以在代碼視圖中的控件選擇下拉列表中選擇RedColor這個控件,然后在右邊的事件下拉列表中選擇MouseDown事件(當(dāng)按下鼠標時發(fā)生),這時,Visual Studio會自動生成如下代碼:
Private Sub RedColor_MouseDown(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles RedColor.MouseDown
End Sub
接下來就在當(dāng)前生成的代碼中寫入如下代碼:
RedColor.BackColor = Color.FromArgb(255, 0, 0)
這句代碼的作用是利用Color下的FromArgb方法來設(shè)置RGB顏色參數(shù),在RGB顏色系統(tǒng)中,R代表紅色,G代表綠色,B代表藍色,根據(jù)這三種顏色的不同程度的調(diào)和,就會得到不同的顏色,如果您要得到深色的天藍色,則可以設(shè)置FromArgb(0, 191, 255),這個顏色轉(zhuǎn)換為HTML中的RGB顏色就是#00BFFF。
當(dāng)然顏色還原最好是寫在MouseUp事件里面,這樣就不必在單擊其他按鈕時來還原上一次按下的按鈕的顏色,在這里,為了方便描述,我們假設(shè)按鈕的默認顏色為白色,也就是FromArgb方法設(shè)置為FromArgb(255, 255, 255)的時候,所標示的顏色就是白色
所以選擇了RedColor按鈕的MouseUp事件后,Visual Studio會自動生成下列代碼:
Private Sub RedColor_MouseUp(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles RedColor.MouseUp
End Sub
MouseUp的含義是當(dāng)鼠標彈起時發(fā)生,所以在這個事件就可以設(shè)置按鈕顏色的還原,即添加下列代碼來實現(xiàn):
RedColor.BackColor = Color.FromArgb(255, 255, 255)
當(dāng)然,這就編寫好了一個按鈕按下時變色,回彈時還原的功能,至于另外一個按鈕的功能,這與這個按鈕的功能一樣,只是代碼有一些細微的差別而已,假設(shè)這個按鈕的Name屬性的屬性值為BlueColor,相應(yīng)的代碼對應(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) '藍色的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事件進行合并,這合并后的代碼如下:
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)然,這個你只要分析了控件事件代碼的基本結(jié)構(gòu),一切就一目了然了,控件事件代碼的基本結(jié)構(gòu)如下:
[作用域] Sub 事件名([參數(shù)列表]) Handles 控件事件1 [, 控件事件2, 控件事件3...]
[事件代碼區(qū)域]
End Sub
如果此回答對您有幫助,別忘了采納哦,如果沒有解決您的問題,您可以在互聯(lián)網(wǎng)上尋找更多關(guān)于此問題的解決方案,謝謝!
你好,我不知道你是用什么方法保存的,不過.net里的color有一個方法是Color.FromArgb 你可以這么做,dim
c
as
color=richtextbox1.ForeColor dim
colorstring
as
string=c.ToArgb().ToString
colorstring就是顏色的值(字符串)再把colorstring保存到ini文件加載顏色的時候,從ini里讀取colorstring 具體是:dim
RtextColor
as
color=Color.FromArgb(cint(colorstring))richtextbox1.ForeColor
=RtextColor
用一個變量存儲原來的顏色啊
dim a as intger=Me.BackColor
Me.BackColor=a