NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Honzs Sedlomn:7.10.2015 16:49

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
Tvůrce
Avatar
Milan Křepelka:8.10.2015 9:44

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:8.10.2015 13:40

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
Tvůrce
Avatar
Milan Křepelka:8.10.2015 14:51

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:8.10.2015 19:14

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:8.10.2015 19:52

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
Tvůrce
Avatar
Milan Křepelka:9.10.2015 7:36

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í
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
9.10.2015 7:36
Avatar
Odpovídá na Michal Štěpánek
Honzs Sedlomn:10.10.2015 16:42

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:10.10.2015 16:47

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.