Dem ønsker jeg at lave til Buttons i mit program når dette "loades". Dvs. den laver knapperne: Nr1 Nr2
Hvis jeg fx. tilføjer <item>nr3</item>, skal den generere: Nr1 Nr2 Nr3
Jeg _tror_ jeg har styr på at hente XML informationerne, men hvordan generere jeg knapperne? Og yderligere hvordan får jeg dem til at stå i kolonner, således de ikke vælter rundt i min Form?
[...] FlowlayoutPanel panel = new FlowLayoutPanel(); panel.SuspendLayout(); foreach (XmlNode node in DenNodelisteDuHarSelectedMedItemsI) { Button b = new Button(); b.Text = node.InnerText; b.Clicked += DynamicButtonClicked; panel.Controls.Add(b); } panel.ResumeLayout(false); [...]
private void DynamicButtonClicked(object sender, EventArgs e) { Button b = sender as Button; if (b != null) { //Find ud af hvad du vil lave når der klikkes på din knap. } }
Hov.. Man skal nok også Add'e panel til sin form, så hvis vi regner med at ovenstående kode ligger i din form skal du nederst i den første kodesektion tilføje:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Xml;
namespace App { public partial class mainForm : Form { public mainForm() { InitializeComponent(); }
Jeg har med success fået udtrækket til at virke fra XML filen vha: foreach (XmlNode item in getItems) { string name = item.ChildNodes[0].FirstChild.Value; MessageBox.Show(name); }
Jeg acceptere lige, men ved du hvordan jeg kan få flowpanelet til at flyte hele formen? Så straks der kommer flere knapper, så kan jeg kun se halvdelen af knap 2, men knap 1 vises helt. Hvordan kan det være?
Nu har jeg så en anden udfordring, med at knappen skal starte en funktion ud fra nogle infos som står i XML filen, og selve udtrækket ligger i for løkken. Men den må jeg se om jeg ikke kan løse på en eller anden spøjs måde :)
Du kan også vælge at placere dine knapper direkte på formen, men så skal du huske at sætte placeringen af knappen via Location, fx:
btn.Location = new Point(50, 50);
Og hvis du nu skal have flere knapper, alle sammen placeret pænt under hinanden:
btn.Location = new Point(50, this.Controls.Count*50);
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.