04. december 2007 - 13:26
Der er
5 kommentarer
Returnere string fra listbox
Jeg har en Form med en Knap. Hvis jeg trykker på knappen åbnes en ny form med en ListBox i. Hvis jeg laver et enkelt klik på denne ListBox ønsker jeg at selectedItem returneres til min første Form som en string. Hvorledes gøres dette?
Annonceindlæg fra Hitachi
04. december 2007 - 18:29
#4
using System; using System.Windows.Forms; delegate void SelectedEventHandler(object sender, SelectedEventArgs e); class SelectedEventArgs : EventArgs { private object selectedValue; private int selectedIndex; public SelectedEventArgs(int selectedIndex, object selectedValue) { this.selectedIndex = selectedIndex; this.selectedValue = selectedValue; } public object SelectedValue { get {return selectedValue;} } public int SelectedIndex { get {return selectedIndex;} } } class Form1 : Form { public Form1() { Button b = new Button(); b.Text = "&Open Form2"; b.Click += bClicked; Controls.Add(b); } void bClicked(object sender, EventArgs e) { Form2 f = new Form2(); f.SelectedIndexChanged += fSelectedIndexChanged; f.Show(); } void fSelectedIndexChanged(object sender, SelectedEventArgs e) { MessageBox.Show("The selected value in form2 -> " + e.SelectedValue.ToString()); } } class Form2 : Form { public event SelectedEventHandler SelectedIndexChanged; public Form2() { ListBox lb = new ListBox(); lb.DataSource = new string[] {"item one", "item two", "item three", "item four"}; lb.SelectedIndexChanged += lbSelectedIndexChanged; Controls.Add(lb); } void lbSelectedIndexChanged(object sender, EventArgs e) { ListBox lb = sender as ListBox; if (lb != null) { OnSelectedIndexChanged(new SelectedEventArgs(lb.SelectedIndex, lb.SelectedValue)); } } protected virtual void OnSelectedIndexChanged(SelectedEventArgs e) { if (SelectedIndexChanged != null) { SelectedIndexChanged(this, e); } } } class Program { static void Main(string[] args) { Form1 f = new Form1(); Application.Run(f); } }