Hallo,
versuche nun seit längerem ein Problem zu lösen,
es geht nur um die Lösung deshalb habe ich ein kleines Testprojekt:
Ich habe ein Form in dem ein Panel mit einem UserControl ist.
Auf dem Form ist eine Listbox und auf dem UserControl ein Button.
Jetzt will ich mit dem Button einen Eintrag in der Listbox
auf Form1 machen.
Habe dieses nach folgendem Code probiert, jedoch bekomme ich nur
die Textbox "Hier Form1" und die Methode wird nicht ausgeführt
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace ProbiertProjekt { public partial class Form1 : Form { UserControl1 userControl1;
public Form1() { InitializeComponent(); userControl1 = new UserControl1(); }
private void Form1_Load(object sender, EventArgs e) { UserControl1 usr1 = new UserControl1(); usr1.Dock = DockStyle.Fill; panel1.Controls.Add(usr1); listBox1.Items.Add("TEST"); }
public void DoSomething() { MessageBox.Show("Hier Form1"); this.listBox1.Items.Add("TEST"); OnMyEvent(EventArgs.Empty); }
public event EventHandler MyEvent;
protected virtual void OnMyEvent(EventArgs e) { EventHandler myEvent = MyEvent; if (myEvent != null) { myEvent(this, e); } }
} } |
UserControl
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace ProbiertProjekt { public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Form1 frm1 = new Form1(); frm1.MyEvent += myObjekt_MyEvent;
frm1.DoSomething(); }
public static void myObjekt_MyEvent(Object objSender, EventArgs e) { MessageBox.Show("TestUserControl1"); }
} } |
Kann mir jemand sagen wie ich Form aus dem UserControl bediene?