Jag håller på att planera ett nytt projekt och funderar örver olika lösningar. C# men borde inte vara några problem... Tack för svaret men jag hänger inte med alls. <b>Är detta visualbasic dotnet kod?</b> 'Först får du göra en händelsehanterare som ska hantera händelsen: Tack för svaren <b>En fråga till Marcus, varför bör jag lära mej #C också?</b> HejNär man skapat en eller flera knappar via kod (Dynamiskt)
Jag vet hur man skapar nya objekt dynamiskt men om jag skapat en knapp hur fångar jag den knappens klick händelse eller någon annan händelse?
Tack från
TorgnySv: När man skapat en eller flera knappar via kod (Dynamiskt)
<code>
//När du skapar knappen dynamiskt lägger du till något för att hantera clickhändelsen
this.MyNewShinyButton.Click += new System.EventHandler(this.ShinyButton_Click);
//För att särskilja vilken du tryckt på kan man göra på flera sätt, tex sätta namn eller tag-property
this.MyNewShinyButton.Tag = "Något kul";
//Metoden som tar hand om eventet
private void ShinyButton_Click(object sender, System.EventArgs e)
{
if (((button)sender).Tag == "Något kul")
{
messaegebox.Show("HURRA!!!" + Envirmoment.Newline + "Någon tryckte på min dynamisk knapp");
}
else
{
messaegebox.Show("SUCK!" + Envirmoment.Newline + "Ingen tryckte på min dynamisk knapp... :-(");
}
}
</code>Sv:När man skapat en eller flera knappar via kod (Dynamiskt)
Är detta visualbasic dotnet kod?
Har jag råkat skriva min fråga under fel forum?
mvh
TorgnySv: När man skapat en eller flera knappar via kod (Dynamiskt)
Nej, som det står högst upp är detr C#, men det borde inte spela någon roll. Syntaxen är ju "liknande" och skall man hålla på med .Net bör man kunna läsa båda språken i stort sett obehindrat.
<b>Har jag råkat skriva min fråga under fel forum? </b>
Nej. Men jag orkar/vill inte/hade inte tid med att skriva VB.Net kod utan det jag ville få fram framgår av koden och dess komentarer. Det du behöver göra är ju att knyta dina knappar till en metod som hanterar ett event, tex Click. Sv: När man skapat en eller flera knappar via kod (Dynamiskt)
Sub Handlern(ByVal sender as object, byval e as eventargs)
'Klickhantering här!
End Sub
'Sedan när du skapar knappen använder du nyckelordet AddHandler:
AddHandler Knappen.Click, AddressOf HandlernSv:När man skapat en eller flera knappar via kod (Dynamiskt)
Jag ska sätta mej till häljen och prova.
Jag för söker nämmerligen lära mej vb.net skälv va böcker på häljerna och har hållit på ett halv år.
En fråga till Marcus, varför bör jag lära mej #C också?
Robert jag har inte testat ditt svar men jag undrar, ska jag skapa en rutin för varje ev knapp som ska fånga händelsen från knappen. Jag skulle vilja ha en som som listarut vilken knapp som hadde en klickhändelse.
Tacksam för ytterligare förslag också
MVH
TorgnySv: När man skapat en eller flera knappar via kod (Dynamiskt)
Nä, du behöver inte lära dig MEN det kommer att underlätta ENORMT om du kan läsa både VB.Net och C# kod. Båda bygger ju på samma framework och det är ju egentligen det man skall lära sig, sedan blir ju syntaxen för språk relativt lika varandra och det underlättar omman kan "sno" ide'er, kod och förstå hur ramverket fungerar om man kan läsa annan kod.
Då skriver jag istället hur du skall göra:
Du måste skapa en funktion som tar hand om knapptryckningar (*1), dessa har två inparametrar av typen object ochj System.EventArgs och "returnerar" alltid void (Sub i VB). I denna funktionen tar du hand om det som skall göras när du trycker på en knapp. När du skapar en knapp så måste du på något sätt tala om för den vad som skall hända när du trycker på den, det gör du genom att lägga till en EventHandler på det du vill skall ske, i ditt fall Click eventet(*2). Eftersom du nu har skapat en knapp, talat om för den vilken metod som skall användas när man trycker på den så kommer den också att anropas när man trycker. Alla knappar du skapr dynamiskt kan gå mot samma metod.
*1. skapa ett tomt formulär, lägg till en knapp och dubbeklicka på den och TITA PÅ HUR funktionen ser ut...
*2. C# koden för att lägga till en eventhandler på click ser ut så här Knappen.Click += new System.EventHandler(Handlern); VB koden har Robert skrivit ovan: AddHandler Knappen.Click, AddressOf Handlern
Vb.Net, C# och ramverket är lite som skruvmejslar och skruvar. Kan man skruva ur en skruv med en vanlig skruvmejsel(VB.Net) så bör man också kunna skruva ur en med en stjärnskruvmejsel(C#), även om det är skillnad så är det grundläggande så pass likt så man bör klara av det. Har suttit med på arbetsintervjuer och frågat sökande saker och den som säger att han/hon enbart kan VB.Net och inte ramverket är de direkt ointressanta. Söker man en C#-utvecklare och en sökande säger "-Har aldrig jobbat med det, men kan ramverket jäckligt bra" så är den personen högintressant. Kan man bara ramverket kan man relativt lätt byta språk, visst sitter man och skriver fel första veckan när man byter men sen sitter det. Likaså om jag skulle titta på arbetsannonser så är annonser som skriver "Söker duktig VB.Net..." eller "Söker duktig C#..." direkt ointressanta, om de inte kan skriva annonser ordentligt varför skulle jag då vilja jobba hos dem? ja ja, massa dravel från mig, inget att bry sig om... ;-) Sv:När man skapat en eller flera knappar via kod (Dynamiskt)
Jag har inte hunnit titta på det i praktiken men jag har hunnit titta och fundera över koden. Jag tror jag förstår den nu.
Tack för att ni hjälpt mej lösa detta
MVH
Totgny