也容易,如果是黑白三個顏色加上相同的漸變量,彩色的是起始顏色的三個分量與終止顏色的對應(yīng)三個分量的差值,再除于相同的份數(shù),就得出三原色各自的步進(jìn)量。
清河網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
窗體上放個圖片框試試下面代碼:
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
復(fù)雜的不會,來點(diǎn)兒簡單的,借用在listbox里按下鼠標(biāo)時再移動,會高亮顯示選擇行,并且會隨鼠標(biāo)移動而變化的這一特點(diǎn)改進(jìn)的,不足之處是在listbox里,此時處于鼠標(biāo)左鍵在按下狀態(tài)。
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = H2 '模擬鼠標(biāo)左鍵按下
Private Sub ListBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseMove
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
End Sub
首先,設(shè)定Timer控件的Enabled屬性為True,Interval屬性為1000(單位為毫秒)。
然后,添加程序代碼如下:
private void timer1_Tick(object sender, EventArgs e)
{
if (this.label1.BackColor == Color.Red) //判斷當(dāng)前背景色是否為紅色
this.label1.BackColor = Color.Blue; //如果是則變?yōu)樗{(lán)色
else //如果當(dāng)前背景色不是紅色
this.label1.BackColor = Color.Red; //將背景色變?yōu)榧t色
}
我是新手,僅談?wù)勎业睦斫?,按鈕的MouseEnter與MouseLeave事件就可以解決,需要這么復(fù)雜嗎?
比如當(dāng)鼠標(biāo)移入按鈕(Button1)時,按鈕的字體變色(假如變?yōu)榧t色)可以寫為(MouseEnter事件):
Button1.Forecolor=color.red;
當(dāng)鼠標(biāo)移出,字體顏色變回去(假如本來是黃色)(MouseLeave事件):
Button1.Forecolor=color.yellow;
如要做高級的動態(tài)變化,估計添加timer進(jìn)來,寫Timer的Tick事件,比如Tmier每Tick一次,按鈕的紅色就加5,同時設(shè)置按鈕的Tick間距。
應(yīng)該是隔一行換顏色。
Me.DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Red
使用該代碼即可。