Vb.net 按钮更改所有窗体中的背景色

Vb.net 按钮更改所有窗体中的背景色,vb.net,visual-studio,Vb.net,Visual Studio,我在学校只学了一点VisualBasic,现在我正试着自己做一些事情,如果这是一个愚蠢的问题,很抱歉 我创建了几个按钮,可以使用以下方法更改背景颜色: Private Sub bgcblue_Click(sender As Object, e As EventArgs) Handles bgcblue.Click BackColor = Color.DeepSkyBlue End Sub 然而,我不知道如何让它改变其他形式的颜色。这是唯一一个您可以选择的表单,因此,例如

我在学校只学了一点VisualBasic,现在我正试着自己做一些事情,如果这是一个愚蠢的问题,很抱歉

我创建了几个按钮,可以使用以下方法更改背景颜色:

Private Sub bgcblue_Click(sender As Object, e As EventArgs) Handles bgcblue.Click
        BackColor = Color.DeepSkyBlue
    End Sub
然而,我不知道如何让它改变其他形式的颜色。这是唯一一个您可以选择的表单,因此,例如,如果您选择蓝色,则以下表单也将具有蓝色背景


我能想到的唯一方法是在每个表单的开头写一个if子句,说明如果在上一个表单上单击了该按钮,那么它应该具有该颜色,但这似乎有很多代码。。。有人能帮忙吗?很抱歉,如果您不理解我说的话或我说的不正确…

我会在模块中的某个地方设置一个名为
BackgroundColor
的全局变量,以便所有表单都可以访问它。 单击按钮时,设置变量的值。如果你只是在两种颜色之间切换,那么你可以选择“真正的猎鹰”,也可以选择新背景色的实际值 然后,当您加载一个新表单时,让它根据变量的值设置它的底色

这是一个简单的选择。还有更复杂的。。。
如果您愿意,我可以详细介绍其他几种方法,请告诉我。

在VB中,这非常简单。你只需要参考你的其他表格。不要只说
BackColor=Color.DeepSkyBlue
而是通过添加表单名称来引用该属性…因此
YourMainForm.BackColor=Color.DeepSkyBlue

项目-->添加新项-->公共项-->模块中添加模块项 在模块中编写代码

Module Module1
    Public Sub form_background(ByVal frm As Form)' pass current form as system.controls.form
        frm.BackColor = Color.Azure ' Set the back ground color as .Azure
    End Sub
End Module
在添加的每个页面中调用函数,如下所示

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    form_background(Me)
End Sub
Private Sub bgcblue_Click(sender As Object, e As EventArgs) Handles bgcblue.Click
    BackColor = Color.DeepSkyBlue
    form1.Backcolor = Color.DeepskyBlue
    form2.Backcolor = Color.DeepSkyBlue 
End Sub

在按钮单击代码中,您可以执行以下操作

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    form_background(Me)
End Sub
Private Sub bgcblue_Click(sender As Object, e As EventArgs) Handles bgcblue.Click
    BackColor = Color.DeepSkyBlue
    form1.Backcolor = Color.DeepskyBlue
    form2.Backcolor = Color.DeepSkyBlue 
End Sub

要更改所有形式的背景色,请执行以下操作:

  • 创建一个表来存储颜色名称
  • 在模块中,创建一个全局变量,并为其指定一个值,该值是使用组合从表中选择的,以使用多种颜色
  • 调用任何窗体加载变量,并将窗体背景色属性设置为该变量
在模块中创建一个公共属性,所有窗体都将使用该属性 在加载事件中设置初始背景色。设置颜色时 更改所有打开窗体的背景色

模块中的属性

Module Module1
    Private m_FormBackgroundColor As Color
    Public Property FormBackgroundColor As Color
        Get
            Return m_FormBackgroundColor
        End Get
        Set(value As Color)
            m_FormBackgroundColor = value
            For Each Frm As Form In Application.OpenForms
                Frm.BackColor = m_FormBackgroundColor
            Next
        End Set
    End Property
End Module
在加载事件中为每个from设置背景色

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        Me.BackColor = FormBackgroundColor
    End Sub
End Class
在按钮上单击以设置背景色

Private Sub bgcblue_Click(sender As Object, e As EventArgs) Handles bgcblue.Click
    FormBackgroundColor = Color.DeepSkyBlue
End Sub

这更像是一个用户选项。将颜色保存到My.Settings,然后在每个表单加载时读取表单加载中的值并应用它。我同意@puropoix,尽管创建全局变量也可以,但我还是更喜欢.net My.Settings,它在运行时和设计时都可以访问。这是正确的。也许是进一步帮助询问者的一个例子?如果你允许,我可以编辑一个。当然,那真的很有用。我现在在工作,所以不能打电话,但如果可以,请打:)对不起耽搁了,我离开了几天。我理解这一点,但我还没有使用过模块,我试图让它工作,但我写的东西总是有问题。你能举个例子说明这是怎么回事吗?谢谢