Avatar billede hehe7777 Nybegynder
07. maj 2006 - 12:51 Der er 4 kommentarer og
1 løsning

Hvordan holder jeg styr på dynamisk skabte kontroller?

Jeg skal lave et program hvor jeg kan skabe kontroller og objekter dynamisk .
Det kunne f.eks være knapper der skabes alt efter hvor man er i programmet, hvilken bruger man er, brugerrettigheder...osv

I nedenstående kode skaber jeg en knap på Form1's constructor, og tilføjer den i ArrayList ListBtn.
Mit problem er at når jeg er ude af constructoren kan jeg ikke få fat i ListBtn igen.
Hvordan gør jeg? skal ListBtn deklareres på formen?...eller?

namespace testCollection
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            ArrayList ListBtn = new ArrayList();
            Button btn1 = new Button();
            btn1.Parent = panel1;
            btn1.Left = 10;
            btn1.Top = 10;
            btn1.Width = 30;
            btn1.Height = 20;
            ListBtn.Add(btn1);
        }
}
Avatar billede pidgeot Nybegynder
07. maj 2006 - 12:59 #1
Deklarer ListBtn uden for din constructor. Reglerne om scope siger at den pågældende variabel bliver utilgængelig når du forlader constructoren, netop fordi den er deklareret inde i denne.
Avatar billede hehe7777 Nybegynder
07. maj 2006 - 13:08 #2
sådan her?

namespace testCollectionWin32
{
    public partial class Form1 : Form
    {
        ArrayList ListBtn;

        public Form1()
        {
            InitializeComponent();
            ListBtn = new ArrayList();
            Button btn1 = new Button();
            btn1.Parent = panel1;
            btn1.Left = 10;
            btn1.Top = 10;
            btn1.Width = 30;
            btn1.Height = 20;
            ListBtn.Add(btn1);
        }
Avatar billede pidgeot Nybegynder
07. maj 2006 - 13:14 #3
Ja, lige præcist. Så vil den indeholde din btn1 lige indtil du engang fjerner den (da .NET ikke sletter en variabel så længe der er en reference til den).
Avatar billede hehe7777 Nybegynder
07. maj 2006 - 13:19 #4
Det fungerer perfekt. Tak for hjælpen
Avatar billede pidgeot Nybegynder
07. maj 2006 - 13:27 #5
Husk nu lige at acceptere mit svar, så ;)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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