Jag infogar menyer i runtimeläge i program. Hej! Löste det ena problemet Friend WithEvents Test2 As System.Windows.Forms.MenuItem Koppla en händelse till knappar i en meny.
Jag vill veta hur jag kopplar dessa menyer till en och samma händelse.
Det kan vara olika många menyer och texten på menyerna kan vara helt olika från gång till gång. I händelsen måste jag veta vilken knapp jag trycker på..
<code>
mnuSkins.MenuItems.Add("Windows")
mnuSkins.MenuItems.Add("-")
mnuSkins.MenuItems.Add("Winamp")
</code>Sv: Koppla en händelse till knappar i en meny.
Såhär kan du göra:
<code>
MainMenu mnuSkins = new MainMenu();
mnuSkins.MenuItems.Add("Windows").Click += new System.EventHandler(mnuOnClick);
mnuSkins.MenuItems.Add("WinAmp").Click += new System.EventHandler(mnuOnClick);
// I denna funktion tas händelsen emot.
void mnuOnClick(object sender, EventArgs e)
{
// Här säger "sender" vilken meny du klickat på:
MenuItem itmClicked = (MenuItem)sender;
}
</code>
//Anders
Edit:
Oops! Skrev det visst i C#...:-) Jag tror det är liknande i vb, men kanske heter "AddEventHandler" eller något liknande... Hoppas du har någon hjälp av detta ändå... =/Sv: Koppla en händelse till knappar i en meny.
<code>
Friend WithEvents Test2 As System.Windows.Forms.MenuItem
mnuSkins.MenuItems.Add("Windows", New EventHandler(AddressOf Test2_Click))
mnuSkins.MenuItems.Add("-")
mnuSkins.MenuItems.Add("Winamp", New EventHandler(AddressOf Test2_Click))
Private Sub Test2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Test2.Click
End Sub
</code>
Nu återsår det andra problemet
Hur fångar jag upp så att jag vet vilken knapp jag tryckt på.Sv: Koppla en händelse till knappar i en meny.
&
Handles Test2.Click
har ju ingen mening i din kod, det kan du skippa rakt av
i eventhandlern:
dim button_name as string = ctype(sender, menuitem).Text