webForumDet fria alternativet

Skapa meny dynamiskt

.NET

2 svar · 512 visningar · startad av Peeer

Medlem sedan mars 20025 907 inlägg
Frågan#1

Håller på att lära mig C# och har en fråga som jag behöver hjälp med. Jag har en Windows Form som har en MenuStrip som i sin tur har några menyalternativ. Jag har även en lista med objekt (innehåller ett menynamn och ett id-nummer) som byggs upp av användaren.

Det jag vill göra är att skapa undermenyer av de inmatade menynamnen dynamiskt. I den bifogade filen har användaren skapat objekten Test 1, 2, 3 & 4, och därför finns just de menyvalen under menyn "Testar". När man väljer ett av menyvalen så ska en funktion köras. Funktionen kommer vara identisk mellan de olika valen, förutom då att ID-numret kommer skilja.

Någon som förstår vad jag vill göra? Någon som vet hur jag gör det hela?

Mvh Per

MenuStrip.png
Medlem sedan feb. 20002 300 inlägg
#2

Ett sätt att lösa det är:

- Läs in konfigurationsfilen med menyalternativen och ID:n.
- För varje menyalternativ skapar du ett menyobjekt.
- Lägg till en EventHandler för menyobjektens OnClick-metod (samma handler för alla objekt.)
- Använd menyobjektens "Tag"-property som lagring för ID.
- När du klickar på något av dessa menyobjekt kommer EventHandlern anropas där ett argument är menyobjektet som du klickade på (brukar ha "sender" som parameternamn.)
- Plocka ut IDt från Tag-propertyn på "sender".
- Anropa metoden med IDt som parameter.

Medlem sedan mars 20025 907 inlägg
#3

Perfekt. Tackar :)

263 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)