Hej, Du skriver inte fall det är asp.net eller windows forms. Jag skriver i C#, Windows.Forms med andra ord =)En knapp/EventHandler exekverar två gånger vid klick
nu är jag här igen med mina C#-frågor.
Det är så att jag har ett antal knappar som genereras och till varje knapp tilldelar jag en EventHandler enligt:
movieButton.Click += new EventHandler(cButton_Click);
Problemet är att den utförs två gånger, dvs
private void cButton_Click(object sender, EventArgs e)
utförs två gånger! Jag har letat igenom dokumentet och det är endast 1 ställe som denna movieButton.Click tilldelas. Kort går det till såhär:
// Knappen tas ut från en ArrayList (där den sparats tidigare), dvs "tray" nedan
System.Collections.IEnumerator myEnumerator2 = tray.GetEnumerator();
// Jag itererar denna tray/ArrayList och för varje loop tar jag ut en knapp enligt:
MovieButton movieButton = (MovieButton) myEnumerator2.Current;
// Lägger lite information i knappen
movieButton.Location = p;
movieButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
movieButton.Text = "Nånting";
// Lägger till EventHandlern för klickning
movieButton.Click += new EventHandler(cButton_Click);
this.panelCheckoutMovieList.Controls.Add(movieButton);
Här kommer metoden cButton_Click:
private void cButton_Click(object sender, EventArgs e)
{
MovieButton b = (MovieButton) sender;
int d = b.getId();
tray.Remove(b);
tempTray.Remove(d);
hashtableTextboxes.Clear();
if (b.getStatus() == 1)
nbrOfDiscountTicketsInTray--;
updateCheckout();
}
Vad som görs i metoden är att knappen typecastas rätt, hämtar ut lite id:nr, tar bort den knapp jag klickade på från min ArrayList (tray.Remove(b)) och ltie annat smått o gott.
Jag undrar alltså varför den körs två gånger? Jag har letat lite på nätet, sett något liknande men har inte hittat något vettigt svar.
Tacksam för hjälp, jag är nämligen helt ute o cyklar nu...
MVH
Sv: En knapp/EventHandler exekverar två gånger vid klick
Är det asp.net så prova att skriva AutoEventWireup="false" i din aspx sida.
ex.
<code asp.net>
<%@ Page language="c#".......................... AutoEventWireup="false"%>
</cdoe>Sv:En knapp/EventHandler exekverar två gånger vid klick