Vraag : Veranderend BackColor van een Knoop op een Vorm door Code die in een Module wordt geplaatst

Ik een Form1 in een Visueel Project van de Studio 2008 met een Button1 op it.
I zou willen BackColor van dit Button1 door code Sub in een Module1 in mijn Project.
I hebben de volgende code in Module1

Public SubChangeBackColor (aanbrengen plaatsen)
MsgBox „Hello - ons of hebben zal de Kleur van Button1 laten zien veranderen? “

Form1.Button1.BackColor = Color.RoyalBlue

End Sub

I een Vraag aan ChangeBackColor () in de ladingsgebeurtenis van Form1
I gezet had gehoopt dat wanneer Form1 het zal roepen ChangeBackColor laadt en door dit de kleur van Button1 op Vorm zal veranderen in RoyalBlue.
However dit niet werkt. Ik wens om te weten of wat ik verwachtte dat gebeurt onrealistisch was en als er manier is om te bereiken wat ik wilde bereiken - dat verandert BackColor van een Knoop op Form1 door Sub gezet in een andere Module in uw Project.
As een test of de vraag aan ChangeBackColor werkte, heb ik een MsgBox in
Sub ChangeBackColor gezet en MsgBox toont wanneer Form1 omhoog laadt maar de Kleur van Button1 verandert niet. Ik zou voor hulp in het bereiken this.

Thank u voor uw hulp in anticiperen dankbaar zijn.
Please- nota gebruik ik Visuele Basis in Visuele Studio 2008.

Antwoord : Veranderend BackColor van een Knoop op een Vorm door Code die in een Module wordt geplaatst

In welke omstandigheden de code in de Module zal geroepen worden?

Één verschillende benadering is in plaats daarvan over het () bezit MdiChildren van uw Hoofdvorm te herhalen en de instantie van Form1 te vinden die manier:

    Openbare SubChangeBackColor ()
        Voor Elk kind als Vorm in Main.MdiChildren
            Als het kind TypeOf dan Form1 is
                Schemerige f1 als Form1 = C (kind, Form1)
                f1.Button1.BackColor = Color.RoyalBlue
            Eind als
        Daarna
    Sub van het eind

Het kijkt als u heeft reeds een verwijzing naar uw instantie van Form1 via uw „frm1“ variabele (waarschijnlijk op klassenniveau in Leiding?).  U kon dat in ChangeBackColor () overgaan:

    Openbare SubChangeBackColor (ByVal f1 als Form1)
        f1.Button1.BackColor = Color.RoyalBlue
    Sub van het eind

Van binnen Leiding, zou u doen:

    ChangeBackColor (frm1)
Andere oplossingen  
 
programming4us programming4us