Oblikovanje več kontrolnikov v Formi

Pomoč pri izdelavi makrov
Odgovori
BJ
Prispevkov: 171
Pridružen: Sr Okt 26, 2005 5:46 pm

Oblikovanje več kontrolnikov v Formi

Odgovor Napisal/-a BJ »

Pozdravljeni!
Prosim za pomoč. V "UserForm1" imam tri "Frame"- e in v vsakem od teh več "TextBox"-ov.
Kako naredim, da izberem vse "TextBox"- e ali "Fram"-e in zamenjam n.pr. "BackColor", ali kakšno drugo oblikovanje
naenkrat, brez, da za vsak "TextBox" ali "Frame" pišem nov stavek?

Koda: Izberi vse

Private Sub CommandButton1_Click()
Dim Svetlo
Dim Temno
Svetlo = RGB(0, 255, 200)
Temno = RGB(0, 100, 125)

UserForm1.BackColor = Temno
	Frame1.BackColor = Temno
  	 Frame2.BackColor = Temno
	   Frame3.BackColor = Temno
With CommandButton1
    .BackColor = Temno
    .ForeColor = Svetlo
End With
    TextBox1.BackColor = Svetlo
       TextBox2.BackColor = Svetlo
         TextBox3.BackColor = Svetlo
           TextBox4.BackColor = Svetlo
        'itd
    TextBox1.SetFocus
 End Sub
admin
Site Admin
Prispevkov: 3704
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Oblikovanje več kontrolnikov v Formi

Odgovor Napisal/-a admin »

Pozdravljeni,

Vsaka objekt, ki lahko vsebuje druge objekte (Form, Frame...) ima lastnost Controls, ki predstavlja seznam vseh kontrol (elementov), ki jih ta objekt vsebuje.

V lastnosti Controls, so torej naštete vse kontrole, ki jih element vsebuje. Seveda pa so našteti samo njegovi neposredni otroci! Če imate torej na obrazcu (Form) tri okvirje (Frame) in v vsakem okvirju 4 vnosna polja (TextBox), potem bo imel obrazec 3 otroke in to so okvirji, vsak okvir pa bo imel spet po 4 otroke, vnosna polja

Podajam torej primer preproste kode, ki na obrazcu v vsa vnosna polja vpiše To je vsebina

Koda: Izberi vse

Private Sub CommandButton1_Click()
    Dim ctrl As Control

    For Each ctrl In Me.Controls
        If TypeName(ctrl) = "TextBox" Then
            ctrl.Value = "to je vsebina"
        End If
    Next ctrl
End Sub
Pa še vaš konkretnejši primer, ki nastavi vsem okvirjem barvo ozadja:

Koda: Izberi vse

Private Sub CommandButton1_Click()
  Dim Svetlo: Svetlo = RGB(0, 255, 200)
  Dim Temno: Temno = RGB(0, 100, 125)

  Dim ctrl As Control
  For Each ctrl In Me.Controls
    If TypeName(ctrl) = "Frame" Then
      ctrl.BackColor = Temno
    End If
  Next ctrl
End Sub
lp,
Matjaž Prtenjak
Administrator
BJ
Prispevkov: 171
Pridružen: Sr Okt 26, 2005 5:46 pm

Re: Oblikovanje več kontrolnikov v Formi

Odgovor Napisal/-a BJ »

Najlepša hvala za tako hiter odgovor.
Še enkrat hvala in lep pozdrav! BJ
Odgovori