更改按钮(文本框等..)backcolor和forecolor与rgb滑块从另一种形式

时间:2016-01-30 17:15:37

标签: vb.net

所以是的,我做了一个带有RGB滑块的表格,它生成了一种颜色,而当我关闭这个表格时,我的r,g,b变量(整数)被发送到我的另一个用来改变所选按钮的颜色这是我到目前为止所得到的...(一些代码是法语rouge = red,vert = green和bleu = blue,因为lbl代表标签,tb代表轨道栏)

Public Property r As Integer
Public Property g As Integer
Public Property b As Integer

Private Sub tbrouge_Scroll(sender As Object, e As EventArgs) Handles tbrouge.Scroll
    lblrouge.Text = tbrouge.Value
    prgb.BackColor = Color.FromArgb(tbrouge.Value, tbvert.Value, tbbleu.Value)
End Sub

Private Sub tbvert_Scroll(sender As Object, e As EventArgs) Handles tbvert.Scroll
    lblvert.Text = tbvert.Value
    prgb.BackColor = Color.FromArgb(tbrouge.Value, tbvert.Value, tbbleu.Value)
End Sub

Private Sub tbbleu_Scroll(sender As Object, e As EventArgs) Handles tbbleu.Scroll
    lblbleu.Text = tbbleu.Value
    prgb.BackColor = Color.FromArgb(tbrouge.Value, tbvert.Value, tbbleu.Value)
End Sub

Private Sub btn_ok_Click(sender As Object, e As EventArgs) Handles btn_ok.Click
    r = tbrouge.Value
    g = tbvert.Value
    b = tbbleu.Value
    Me.Close()
End Sub

1 个答案:

答案 0 :(得分:0)

使用自定义事件。

Public Class frmColorChange
 Public Property r As Integer
 Public Property g As Integer
 Public Property b As Integer
 Public Event ColorChanged(r As Double, g As Double, b As Double)
Private Sub tbrouge_Scroll(sender As Object, e As EventArgs) Handles tbrouge.Scroll
 lblrouge.Text = tbrouge.Value
 prgb.BackColor = Color.FromArgb(tbrouge.Value, tbvert.Value, tbbleu.Value)
End Sub

Private Sub tbvert_Scroll(sender As Object, e As EventArgs) Handles tbvert.Scroll
 lblvert.Text = tbvert.Value
 prgb.BackColor = Color.FromArgb(tbrouge.Value, tbvert.Value, tbbleu.Value)
End Sub

Private Sub tbbleu_Scroll(sender As Object, e As EventArgs) Handles tbbleu.Scroll
 lblbleu.Text = tbbleu.Value
 prgb.BackColor = Color.FromArgb(tbrouge.Value, tbvert.Value, tbbleu.Value)
End Sub

Private Sub btn_ok_Click(sender As Object, e As EventArgs) Handles btn_ok.Click
 r = tbrouge.Value
 g = tbvert.Value
 b = tbbleu.Value
 'raise the event
 RaiseEvent ColorChanged(r, g, b)
 Me.Close()
End Sub
End Class

用法:

'on the calling form
Dim frm As New frmColorChanged
Addhandler frm.ColorChanged, AddressOf ColorChanged
frm.ShowDialog()


'event handler
Private Sub ColorChanged(r As Double, g As Double, b As Double)
  'use the variables to set the new color
End Sub