Diskuze: Komunikace mezi Forms aneb proč vyskakuje "Object reference not set to an instance of an object"

C# .NET .NET (C# a Visual Basic) Komunikace mezi Forms aneb proč vyskakuje "Object reference not set to an instance of an object" American English version English version

Avatar
Honzs Sedlomn:

Zdravím, mám velký problém. Snažím se, aby vybraný item v list boxu ve Form2, přenesl svůj text do textBoxu ve Form1. Ovšem ať to zkouším jakýmkoliv způsobem, tak to prostě nejde.. přikladám kod, ve kterém to házi chybu, díky moc :)

Vyjmutý kod z Formu, kde je listBox

private Form1 mainForm = null;
        public Form2(Form1 callingFrom)
        {
            mainForm = callingFrom as Form1;
            InitializeComponent();
        }
        private void okButton_Click(object sender, EventArgs e)
        {
            this.mainForm.udaje = bankovniUctyList.GetItemText(bankovniUctyList.SelectedItem);
            this.Close();
        }

Vyjmutý kod z Formu, kde je textBox

public string udaje
        {
            get { return predmetBanka.Text; }
            set { predmetBanka.Text = value; bankaTextBox.Text = predmetBanka.Text; }
        }
 
Odpovědět 7.10.2015 16:49
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

Nevidím tam nějakou vyslovenou botu, ale od toho ti pomůže debugger. Tak kde ti to vyhazuje výjimku dej breakpoint a zjisti co je vlastně null.

 
Nahoru Odpovědět 8.10.2015 9:44
Avatar
Honzs Sedlomn:

Omlouvám se, řešil jsem to stack overflow a tam jsme se aspon k něčemu dostalo :) Konrétně hodnotu null vykazuje v řádku

this.mainForm.udaje = bankovniUctyList.GetItemText(bankovniUctyList.SelectedItem);

slovo udaje jakožto public string v jiné Form

 
Nahoru Odpovědět 8.10.2015 13:40
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

Jestli to není něco tajnýho, tak sem hod projekt, kouknu se na to.

Prozatím bych viděl, špatnou inicializaci tohoto predmetBanka. Ale je to věštění z křišťálové koule.

 
Nahoru Odpovědět 8.10.2015 14:51
Avatar
Honzs Sedlomn:

Zde zasílám. Snad jsem mezitím nic neměnil :)
http://ulozto.cz/…extsharp-rar
Heslo: itext

 
Nahoru Odpovědět 8.10.2015 19:14
Avatar
Odpovídá na Honzs Sedlomn
Michal Štěpánek:

K čemu tam máš to "GetItemText"? Nestačilo by jen

this.mainForm.udaje = bankovniUctyList.SelectedItem.ToString();

?

Nahoru Odpovědět 8.10.2015 19:52
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Milan Křepelka
Redaktor
Avatar
Milan Křepelka:

Chyba v Tvém kódu je v tom, že tento konstruktor který si nám sem poslal

public Form2(Form1 callingFrom)

nevoláš a ten mainForm se nenastaví.

private void button2_Click(object sender, EventArgs e)
        {
            // špatně Form2 form2 = new Form2();
            Form2 form2 = new Form2(this);
            form2.Show();
        }
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 9.10.2015 7:36
Avatar
Odpovídá na Michal Štěpánek
Honzs Sedlomn:

Na tomhle tam vůbec nesejde, problém je v "udaje"

 
Nahoru Odpovědět 10.10.2015 16:42
Avatar
Odpovídá na Milan Křepelka
Honzs Sedlomn:

Jak moc rád bych teď byl sprostý, ale.. no.. co už.. Vidím, že si chytřejší než lidi na stack overflow :D Díky moc :)

 
Nahoru Odpovědět 10.10.2015 16:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.