public partial class Haupt : Form
{
public Haupt()
{
InitializeComponent();
}
private void Main_Load(object sender, EventArgs e)
{
Menu menu = new Menu();
menu.TopLevel = false;
menu.BringToFront();
menu.TopMost = true;
this.splitContainer1.Panel1.Controls.Add(menu);
menu.ButtonAuswertung.Click += new EventHandler(menu_clicked);
menu.Show();
}
private void menu_clicked(object sender, EventArgs e)
{
Menu menu = sender as Menu;
if (menu != null)
{
this.textBox1.Text = menu.ButtonAuswertung.Text;
}
}
public partial class Menu : Form
{
public Menu()
{
InitializeComponent();
}
private void ButtonZeiterfassung_Click(object sender, EventArgs e)
{
this.textBox1.Text = ButtonZeiterfassung.Text;
}
public string iClickedthis
{
get { return this.textBox1.Text; }
set { this.textBox1.Text = value; }
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
}
private void ButtonAuswertung_Click(object sender, EventArgs e)
{
this.textBox1.Text = ButtonZeiterfassung.Text;
this.DialogResult = DialogResult.OK;
}
}
Laut dem FAQ für Form2toForm1
sollte das ja funktionieren?
aber:
private void menu_clicked(object sender, EventArgs e)
{
Menu menu = sender as Menu;
if (menu != null)
{
this.textBox1.Text = menu.ButtonAuswertung.Text;
}
hier ist menu immer NULL,
und bei " this.textBox1.Text = menu.ButtonAuswertung.Text;"
kommt die meldung
"Object reference not set to an instance of an object."
wo ist mein fehler?
Software für Selbstständige
(ob das Update von Firebird 2.0 auf Firebird 2.1 mich an den Rand des Wahnsinns bringt?}
Ich würd jetzt mal tippen "sender" ist nicht dein Form sondern dein Button. Versuch mal auf Button zu casten, damit sollte es gehen.
Original von DCoder
Ich würd jetzt mal tippen "sender" ist nicht dein Form sondern dein Button. Versuch mal auf Button zu casten, damit sollte es gehen.
kannst du das bitte in c# ausdrücken?
Software für Selbstständige
(ob das Update von Firebird 2.0 auf Firebird 2.1 mich an den Rand des Wahnsinns bringt?}
Naja... 😉
Kurz: "as Menu" wird zu "as Button".
Aber so wie ich das sehe registrierst du im Click Eventhandler deines Buttons (ButtonAuswertung) die Methode "menu_clicked". Sender in dieser Methode wird also "ButtonAuswertung" sein. Sprich du kannst in "menu_clicked" über sender auf den Button zugreifen.
Ich weiss nicht so richtig, daran kanns nicht liegen...
denn wenn ich im "main_load"
menu.Closed+= new EventHandler(menu_clicked);
statt
menu.ButtonAuswertung.Click+=new EventHandler(menu_clicked);
funktioniert es tadellos...
PS. und natürlich die "this.close" im form2 hinzufüge...
Software für Selbstständige
(ob das Update von Firebird 2.0 auf Firebird 2.1 mich an den Rand des Wahnsinns bringt?}
Hm, du gibst mir doch jetzt grad eigentlich nur Recht, oder 😉
menu.Closed+= new EventHandler(menu_clicked);
hier ist der sender dein "menu"
menu.ButtonAuswertung.Click+=new EventHandler(menu_clicked);
hier ist der sender der Button "ButtonAuswertung"
Also entweder du greifst nicht immer über den sender auf das menu form zu, sondern speicherst eine Referenz in deiner Hauptform ab oder du benutzt sender, was dann aber auch nur für einen EventHandler eines gleichen Basistypen gilt!
Sprich: Der SENDER ist von dem Typ, bei dem du dein Event registrierst!
Hallo Ingo79,
zur eigentlichen Frage: [FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Ansonsten bitte ich dich zu berücksichtigen, dass wir kein reines Anfängerforum sind. Deine Original-Fragen waren ok, aber die vielen Nachfragen waren nur nötig, weil dir scheinbar Grundlagen fehlen, die wir hier eigentlich voraussetzen. Bitte arbeite ein Buch wie http://www.galileocomputing.de/openbook/visual_csharp/ durch und bemühe dich vor Nachfragen durch Nachschlagen dieser Grundlagen immer erst selbst selbst eine Lösung zu finden.
herbivore
hier ist der sender der Button "ButtonAuswertung"
Manchmal sieht man den Wald vor lauter Bäumen nicht 🙂
danke Dcoder
@ herbivore
danke für deine Meldungen.
Man ist aber nicht immer ein Anfänger, nur weil man sich in bestimmten Bereichen nicht auskennt, bzw zu wenig Routine hat.
Liebe Grüsse
Ingo
Software für Selbstständige
(ob das Update von Firebird 2.0 auf Firebird 2.1 mich an den Rand des Wahnsinns bringt?}
@Ingo79
Man ist aber nicht immer ein Anfänger, nur weil man sich in bestimmten Bereichen nicht auskennt, bzw zu wenig Routine hat.
Da gebe ich Dir vollkommen recht.
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Hallo Ingo79,
ich wollte dir mit dem Anfänger nicht zu nahe treten. Mit ging es auch nicht darum, dich als Anfänger zu "überführen", sondern eine Aussage über die Art der gestellten Nachfragen bzw. der Konsequenz daraus zu machen. Wenn du kein Anfänger bist, wird es dir nur um so leichter fallen, dir die fehlenden Grundlagen in dem zur Diskussion stehenden Bereich selbst anzueignen. 🙂
herbivore