
正文
vb.net背景颜色渐变 vb单击改变背景色
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
关于vb背景色动画渐变
Dim myrgb(10, 3) '假设有10个要变换的背景颜色
Dim ctime '用于timer控件的计数,假设每个颜色延续时间为10个timer1.Interval时间
Private Sub Form_Load()
'在此设置好各背景颜色的RGB值, 关于RGB颜色的设置最好用用读取文件的形式获取,不多说
myrgb(1, 1) = 20: myrgb(1, 2) = 0: myrgb(1, 3) = 100
myrgb(2, 1) = 40: myrgb(2, 2) = 50: myrgb(2, 3) = 200
myrgb(3, 1) = 20: myrgb(3, 2) = 150: myrgb(3, 3) = 100
myrgb(4, 1) = 20: myrgb(4, 2) = 50: myrgb(4, 3) = 150
myrgb(5, 1) = 25: myrgb(5, 2) = 50: myrgb(5, 3) = 100
myrgb(6, 1) = 20: myrgb(6, 2) = 50: myrgb(6, 3) = 100
myrgb(7, 1) = 20: myrgb(7, 2) = 110: myrgb(7, 3) = 150
myrgb(8, 1) = 20: myrgb(8, 2) = 50: myrgb(8, 3) = 100
myrgb(9, 1) = 20: myrgb(9, 2) = 50: myrgb(9, 3) = 100
myrgb(10, 1) = 20: myrgb(10, 2) = 50: myrgb(10, 3) = 100
End Sub
Private Sub Timer1_Timer()
ctime = ctime + 1
ctime = ctime Mod 100
rgb0 = Int(ctime / 10) + 1
rgb1 = (rgb0 + 1) Mod 10
r0 = myrgb(rgb0, 1): g0 = myrgb(rgb0, 2): b0 = myrgb(rgb0, 3)
r1 = myrgb(rgb1, 1): g1 = myrgb(rgb1, 2): b0 = myrgb(rgb1, 3)
cc = ctime Mod 10
r = r0 + (r1 - r0) / 10 * cc
g = g0 + (g1 - g0) / 10 * cc
b = b0 + (b1 - b0) / 10 * cc
Me.BackColor = RGB(r, g, b)
End Sub
相关问答
Q1: VB 窗口背景渐变透明
窗体设置为完全透明。渐变透明的效果可以由矩形渐变填充来做出来,因为举行渐变填充是可以透明渐变的。
Q2: vb.net 如何使文字能渐变颜色,就是颜色慢慢变淡然后在慢慢恢复?
也容易vb.net背景颜色渐变,如果是黑白三个颜色加上相同vb.net背景颜色渐变的渐变量,彩色的是起始颜色的三个分量与终止颜色的对应三个分量的差值,再除于相同的份数,就得出三原色各自的步进量。
窗体上放个图片框试试下面代码:
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 如何使文字能渐变颜色,就是颜色慢慢变淡然后在慢慢恢复vb.net背景颜色渐变?"
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
Q3: VB.NET 下给Listbox 添加图片或者渐变背景。
在普通window应用程序中的背景是不能有ALPHA通道的
既然是.net,试试用WPF窗体吧:
Listbox1.Background=New SolidBrush(Color.FromARGB(200,0,0,0))
当然你要是了解.net的笔刷类,绘制复杂的背景也不成问题
Q4: 用VB编程实现窗体背景由上至下的颜色逐渐变浅
用VB编程实现窗体背景由上至下的颜色逐渐变浅
很多应用程序的安装界面都采用了标准的由蓝到黑渐变的背景,你可以用如下代码实现这种效果
Sub Dither(vForm As Form)
Dim intLoop As Integer
vForm.DrawStyle = vbInsideSolid
vForm.DrawMode = vbCopyPen
vForm.ScaleMode = vbPixels
vForm.DrawWidth = 2
vForm.ScaleHeight = 256
For intLoop = 0 To 255
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0, 0, 255 - intLoop), B
Next intLoop
End Sub
Private Sub Form_Activate()
Dither Me
End Sub
将窗体的AutoRedraw属性设为True.
如果想得到由红到黑的渐变,只需如下改动:
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(255 - intLoop, 0, 0), B
以下是由绿到黑的渐变效果
vForm.Line (0, intLoop)-(Screen.Width, intLoop - 1), RGB(0,255 - intLoop, 0), B
vb.net背景颜色渐变的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb单击改变背景色、vb.net背景颜色渐变的信息别忘了在本站进行查找喔。







