hallo,
ich arbeite gerade an einem XML Parser für GUI Design.
Mein Problem: wenn ich einen Button insgesammt habe funktioniert das click ereignis, wenn ich mehrere habe kommt nichts
Wie kann ich das managen, dass bei einem Button-click nur dem Button gehörige Aktion ausführt?
Code
GUI-CODE
Vielen Dank
*Edit: habs geschaft, ich habe eine neue klasse gemacht die von Button erbt ne neue Property namens action gemacht, und dann sender überprüfen
ich arbeite gerade an einem XML Parser für GUI Design.
Mein Problem: wenn ich einen Button insgesammt habe funktioniert das click ereignis, wenn ich mehrere habe kommt nichts
Wie kann ich das managen, dass bei einem Button-click nur dem Button gehörige Aktion ausführt?
VB.NET-Quellcode
- Public Class Form1
- Dim actions As String = ""
- Dim forms As New List(Of Form)
- Private Sub Form1Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- Dim guiConfig As XDocument = XDocument.Load(Application.StartupPath & "/GUI.xml")
- Me.Name = "main"
- forms.Add(Me)
- For Each item As XElement In guiConfig.Descendants("Button")
- Dim tmp As New Button()
- actions = item.Attribute("action")
- AddHandler tmp.Click, AddressOf Clicks
- tmp.Name = item.Attribute("name").Value
- tmp.Text = item.Value
- tmp.Location = New Point(Int32.Parse(item.Attribute("x").Value), Int32.Parse(item.Attribute("y").Value))
- For Each frm In forms
- If frm.Name = item.Attribute("form") Then
- frm.Controls.Add(tmp)
- End If
- Next
- Next
- For Each frms As XElement In guiConfig.Descendants("Form")
- Dim tmp As New Form()
- tmp.Name = frms.Attribute("name")
- tmp.Text = frms.Attribute("text")
- forms.Add(tmp)
- Next frms
- End Sub
- Private Sub Clicks(sender As Object, e As EventArgs)
- If actions.StartsWith("Message(") Then
- Dim msg As String = DotNetLib.Others.Anderes.Mid(actions, "'", "'")
- MessageBox.Show(msg)
- ElseIf actions.StartsWith("ShowForm(") Then
- Dim frmname As String = DotNetLib.Others.Anderes.Mid(actions, "'", "'")
- For Each l In forms
- If l.Name = frmname Then
- l.Show()
- End If
- Next
- End If
- End Sub
- End Class
XML-Quellcode
- <?xml version="1.0" encoding="utf-8" ?>
- <GUI>
- <!-- Forms -->
- <Form name="test" text="hello world" />
- <!-- Controls -->
- <Button form="main" name="btn" x="10" y="10" action="ShowForm('test')">Klick Mich</Button>
- <Button form="test" name="close" x="200" y="200" action="CloseForm('')">Schließe Mich</Button>
- </GUI>
Vielen Dank
*Edit: habs geschaft, ich habe eine neue klasse gemacht die von Button erbt ne neue Property namens action gemacht, und dann sender überprüfen
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „filmee24“ ()