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

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Skelller » 07 říj 2015 17:36

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

Kód: Vybrat vše

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

Kód: Vybrat vše

public string udaje
        {
            get { return predmetBanka.Text; }
            set { predmetBanka.Text = value; bankaTextBox.Text = predmetBanka.Text; }
        }
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

Reklama
Uživatelský avatar
Oxxid
člen BSOD týmu
Master Level 8
Master Level 8
Příspěvky: 6194
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Oxxid » 07 říj 2015 18:33

Chapu dobre, ze ti jde pouze o prenos dat mezi dvema formulari?

Uživatelský avatar
Skelller
Level 2
Level 2
Příspěvky: 222
Registrován: červenec 14
Bydliště: Opava
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Skelller » 07 říj 2015 20:56

Prozatím ano. Chyba je, že prý v řádku

Kód: Vybrat vše

this.mainForm.udaje = bankovniUctyList.GetItemText(bankovniUctyList.SelectedItem);
je "udaje" null.. tím pádem to hodí chybu..ani na stack overflow mi neumí poradit
Notebook Acer Aspire E15 E5-571G-57N2
==========================
Procesor: Intel i5-5200U
Grafika: NVIDIA GeForce GT840M
RAM: 8GB DDR3

Uživatelský avatar
Oxxid
člen BSOD týmu
Master Level 8
Master Level 8
Příspěvky: 6194
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Oxxid » 07 říj 2015 22:25

Nepouzivej safe cast, ale direc. Na komunikaci mezi formulari pouzivej nejlepe eventy (udalosti).

Dodatečně přidáno po 35 minutách :


Tady mas ukazku. Ten zbytek s datalistem si tam domaluj.

Form1.xaml.cs

Kód: Vybrat vše

using System.Windows;

namespace WpfApplication
{
    /// <summary>
    ///     Interaction logic for Form1.xaml
    /// </summary>
    public partial class Form1 : Window
    {
        private string _str;

        public string Str
        {
            get { return _str; }
            set
            {
                _str = value;
                StrTextBlock.Text = value;
            }
        }

        public Form1()
        {
            InitializeComponent();
            Form2 form2 = new Form2(this);
            form2.Show();
        }
    }
}


Form1.xaml.cs

Kód: Vybrat vše

using System.Windows;
using System.Windows.Controls;

namespace WpfApplication
{
    /// <summary>
    ///     Interaction logic for Form2.xaml
    /// </summary>
    public partial class Form2 : Window
    {
        private Window CallingInstance { get; }

        public Form2()
        {
            InitializeComponent();
        }

        public Form2(Window callingInstance) : this()
        {
            this.CallingInstance = callingInstance;
        }

        private void AButton_Click(object sender, RoutedEventArgs e)
        {
            DoStuff((Button) sender);
           
        }

        private void BButton_Click(object sender, RoutedEventArgs e)
        {
            DoStuff((Button) sender);
        }

        private void DoStuff(Button sender)
        {
            Form1 form1Instance = (Form1)this.CallingInstance;
            form1Instance.Str = sender.Content.ToString();
        }
    }
}


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Problémy v síti na obrázku - proč nemůžou počítače komunikovat mezi sebou Příloha(y)
    od zuzana3 » 25 pro 2024 20:33 » v Administrace sítě
    7
    4868
    od zuzana3 Zobrazit poslední příspěvek
    25 pro 2024 22:23
  • Zpětná komunikace z NTB na tiskárnu přes switch Příloha(y)
    od vasekpetr1 » 24 říj 2024 21:25 » v Sítě - hardware
    16
    9209
    od vasekpetr1 Zobrazit poslední příspěvek
    10 pro 2024 17:05
  • proč nb nebere boot antivir
    od Stenatko » 03 dub 2025 00:19 » v Vše ostatní (bezp)
    5
    7945
    od Stenatko Zobrazit poslední příspěvek
    03 dub 2025 21:42

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti