Avatar billede jizl Nybegynder
05. marts 2007 - 17:42 Der er 4 kommentarer

C# EventHandler

Jeg har en klasse med en metode i som opretter en masse textbox og andre fleter.
Den opretter også en knap som jeg har lavet en EventHandler på:

myButton1.Click += new EventHandler(myButton1_Click);
....

void myButton1_Click(object sender, EventArgs e)
{
}

Nu vil jeg så gerne kunne få fat i nogle af de textfelter osv. nede i myButton1_click.
Men jeg har prøvet stort set alt og jeg er gået helt i sort over hvordan jeg får det løst :) så hvis der er nogle der har en ide eller en løsning vil jeg blive rigtig glad...

Her er lidt af koden for bare at give en ide om hvordan det ser ud:

//
// textBox1
//
TextBox myTextBox1 = new System.Windows.Forms.TextBox();
myTextBox1.Location = new System.Drawing.Point(6, 19);
myTextBox1.Name = "textBox" + name;
myTextBox1.Size = new System.Drawing.Size(100, 20);
myTextBox1.TabIndex = 1;


//---Add all items
newPage.Controls.AddRange(new Control[] { myCheckBox, myButton1, myLabel10, myRichTextBox3, myLabel9, myRichTextBox2, myLabel8, myTextBox4, myLabel7, myLabel6, myComboBox2, myLabel5, myTextBox3, myTextBox2, myLabel4, myComboBox1, myLabel3, myRichTextBox1, myTextBox1, myLabel2 });

Hele iden med det er at man ved at trykke på new opretter en ny tab der indeholder alle disse elementer, og man skal self. kunne lave mange tabs(dette er løst) men det er så når man skal gemme de info man har skrevet i felterne, i lige den tab, ved at trykke save at problemet kommer.
Avatar billede jizl Nybegynder
05. marts 2007 - 17:46 #1
prøver lige at give et bedre overblik, skriv hvis der er noget andet af koden i mangler


.......

//
            // label2
            //
            Label myLabel2 = new System.Windows.Forms.Label();
            myLabel2.AutoSize = true;
            myLabel2.Location = new System.Drawing.Point(534, 3);
            myLabel2.Name = "label" + name;
            myLabel2.Size = new System.Drawing.Size(63, 13);
            myLabel2.TabIndex = 0;
            myLabel2.Text = name;

            //---Add all items
            newPage.Controls.AddRange(new Control[] { myCheckBox, myButton1, myLabel10, myRichTextBox3, myLabel9, myRichTextBox2, myLabel8, myTextBox4, myLabel7, myLabel6, myComboBox2, myLabel5, myTextBox3, myTextBox2, myLabel4, myComboBox1, myLabel3, myRichTextBox1, myTextBox1, myLabel2 });

            myButton1.Click += new EventHandler(myButton1_Click);

           
                     
        }

        void myButton1_Click(object sender, EventArgs e)
        {

           
         
        }
Avatar billede driis Nybegynder
05. marts 2007 - 18:24 #2
Du skal erklære dine kontroller som felter på klassen. Hvis du initialiserer dem som lokale variable, lever referencen kun i scope af den metode, hvor du initialiserer dem (og så i din Controls collection, selvf.).
Avatar billede jizl Nybegynder
05. marts 2007 - 19:40 #3
okay mange tak men kan du komme med et kode eksempel?
Avatar billede jizl Nybegynder
06. marts 2007 - 10:32 #4
Jeg tror jeg har fundet ud af hvad det var du mente og det virker tak...
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