Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[VB.NET] Dynamic XML menu.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Zit met het volgende probleem, ik heb een xml bestandje waaruit een menu strip wordt uitgebouwd.

code:
1
2
3
4
5
6
7
8
<catalog value="Menu">
    <item value="TypeIt">
        <item value="SubMenu">
            <item value="Menu Item1" onClick="SendKeys">{this is a test1}</item>
            <item value="Menu Item2" onClick="SendKeys">{this is a test2}</item>
        </item>
    </item>
</catalog>


Het opbouwen van de menustrip gaat zonder problem, menu's en submenu's worden perfect opgebouwd.

Het gaat om het volgende stukje

code:
1
2
<item value="Menu Item1" onClick="SendKeys">{this is a test1}</item>
<item value="Menu Item2" onClick="SendKeys">{this is a test2}</item>


nu heb ik een sub, het onlick event.

code:
1
2
3
    Public Sub MenuItemOnClickSendKeys(ByVal sender As Object, ByVal e As System.EventArgs, ByVal sValue As StringFormat)
        MessageBox.Show( nu moet de variable {this is a test1 (of 2) worden gedisplayed})
    End Sub



Wat de code doet is hij kijkt of er een onClick attribute is, zo ja dan wordt de AddHandler code toegevoegd

code:
1
AddHandler sMenu.Click, AddressOf MenuItemOnClickSendKeys


Het enige waar ik nou niet uit komt is dat {this is a test1 (of 2} mee moet worden geparsed naar de MenuItemOnClickSendKeys sub.

Is dit uberhaupt mogelijk?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Het makkelijkst is om bij het opbouwen van je menu de node value ("this is a test1/2") alvast in de .tag property van het menuitem te zetten; dan kun je die uitlezen in je OnClick event. Echt mooi/generiek is het niet, maar zolang het bij een string blijft volstaat dit al en scheelt 't uitbouwen van eigen classes die je dan in de .tag zou moeten stoppen (of het afleiden/inheriten van MenuItem classes)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

Kan je sender niet casten naar een MenuItem om vervolgens de .Text property uit te lezen?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Ik heb het werkend :)

code:
1
2
sMenu.Tag = objNod.InnerText
AddHandler sMenu.Click, AddressOf MenuItemOnClickSendKeys


code:
1
2
3
4
Public Sub MenuItemOnClickSendKeys(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim Value As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)
        Dim sValue As String = Value.Tag
    End Sub


2 oplossingen gecombineerd :), ik vraag me nu wel af of dit een goede manier is?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:28

TeeDee

CQB 241

If it compiles, ship it ;)

Heart..pumps blood.Has nothing to do with emotion! Bored