Avatar billede hadaps Nybegynder
12. december 2003 - 18:12 Der er 4 kommentarer og
1 løsning

kalde object igennem et loop

Hvordan kan jeg skifte Visible() på forskellige objecter igennem et loop?

objekterne er lavet, men jeg mangler bare at kunne kalde dem via et array elelr lign, da jeg har 36 forskellige objekter, som skal kunne styres.

Her tænk på noget som dette:
arrobj.Visible() = False

men det virker nul og nix.

Nogle som kan hjælpe?
Avatar billede hadaps Nybegynder
12. december 2003 - 18:13 #1
ps. det er VB.NET jeg sidder med
Avatar billede arne_v Ekspert
12. december 2003 - 18:19 #2
Du laver et array af en type som både har Visible property og ar
parent klasse til de instantierede klasser og assigner referancer
til alle dine objekter over i det array.

Så kan du loope.

Lidt abstrakt svar men der er ikke så mange oplysninger at bygge på.
Avatar billede hadaps Nybegynder
12. december 2003 - 18:23 #3
det forstår jeg ikke ret meget af...

hvad skal du mere vide for at kunne lave lidt kode eksempel?
Avatar billede arne_v Ekspert
12. december 2003 - 20:17 #4
Her er et gæt - prøv og kør det og kig lidt på det:

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Namespace MyFormProject

    Class MainForm
    Inherits Form
        Private txtbx As TextBox
        Private cmbbx As ComboBox
        Private chkbx As CheckBox
        Private all As Control()
        Private btn As Button

        Public Sub New()
            txtbx = New TextBox
            txtbx.Location = New Point (100, 100)
            cmbbx = New ComboBox
            cmbbx.Location = New Point (100, 200)
            cmbbx.Items.Add("aaa")
            cmbbx.Items.Add("bbb")
            cmbbx.Items.Add("ccc")
            chkbx = New CheckBox
            chkbx.Location = New Point (100, 300)
            all = New Control(2)  {txtbx, cmbbx, chkbx}
            btn = New Button
            btn.Text = "Toggle visibility"
            btn.Location = New Point (225, 300)
            btn.Size = New Size (150, 25)
            AddHandler btn.Click, AddressOf ClickHandler
            ClientSize = New Size (400, 400)
            Controls.Add(txtbx)
            Controls.Add(cmbbx)
            Controls.Add(chkbx)
            Controls.Add(btn)
            Text = "Visibility test"
        End Sub

        Private Sub ClickHandler(ByVal o As Object, ByVal e As EventArgs)
            Dim i As Integer
            For i = 0 to all.Length-1
                all(i).Visible = Not all(i).Visible
            Next
        End Sub

        <STAThread()> _
        Public Shared Sub Main(ByVal args As String())
            Application.Run(New MainForm )
        End Sub
    End Class
End Namespace
Avatar billede arne_v Ekspert
26. december 2003 - 16:25 #5
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester