I mitt program använder jag en Panel, panelBehållaren. I runtime lägger användaren till Panel:er i panelBehållaren. De nya panelerna motsvarar musiknoter och de döps till note0, note1, note2, ... Låt oss kalla en godtycklig note0, note1, etc. för note#. Hej, Tack! Jag är totalt grön och jag har egentligen ingen aning, men det låter som ett bra förslag (har för tillfället inte möjlighet att prova). jepp exakt så är det.Events och Panel:er skapade i runtime
Varje note# "tilldelas" (är lite rutten på dataspråk, men jag gissar att "tilldelas" funkar i detta sammanhang) en EventHandler vars argument är en metod jag kallar Panel_Click.
...
Panel panel = new Panel();
panel.Name = "note" + noteNr.ToString();
panel.Click += new System.EventHandler(this.Panel_Click);
panelBehållaren.Controls.Add(panel);
...
private void Panel_Click(object sender, EventArgs e)
{
Tag reda på vilken note som klickades och utför bla bla bla på
ett sätt som är anpassat till just denna note.
}
Jag hoppades att sender kunde tala om vilken note# som klickades, men så verkar inte fallet vara.
Fråga 1: Hur förmedlar jag till Panel_Click vilken Panel (note#) som klickades?
Fråga 2: Är det en bra idé att köra med Panel:er? Varje Panel motsvarar en not, så om man skriver en hel låt blir det antagligen flera hundra Panel:er.
Sv: Events och Panel:er skapade i runtime
Panel är nog inga problem.
Men din sender borde man ju kunna kasta om till Panel och sedan kan du plocka ut notnamnet från denna.?
noteName = ((Panel)sender).Name
Eller var det detta som inte fungerade?
Mvh JohanSv:Events och Panel:er skapade i runtime
Är Object objekt alltså objekt av obestämd typ och när man kastar om Object:et sender till Panel tolkas det som om det vore ett Panel objekt? Detta kanske är en klumpig och överflödig fråga, men jag är tacksam för svar.
Hälsningar
PeterSv: Events och Panel:er skapade i runtime
anledningen till att sender är object är för att du vill kunna ha samma eventhandler till flera kontroller / källor.
tex en panel , en knapp och en helt vanlig klass... alla dessa kan raisa ett event som hanteras av samma handler..
//Roger