Dostęp do danych w klasie

Odpowiedz Nowy wątek
2014-12-28 13:59
0

Witam

mam taki problem, chciałbym przechowywać zmienne w osobnej klasie do której powinny mieć dostęp wszystkie okna. Zrobiłem coś takiego ale to nie działa dlaczego ??

Pierwsze okno w którym zapisuje dane do tablicy:

namespace Klasy_test
{
    public partial class Form1 : Form
    {
        Dane dane = new Dane();
        Form2 form2 = new Form2();
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Random rd = new Random();
            dane.tablica = new int[5];
            for (int i = 0; i < dane.tablica.GetLength(0); i++)
            {
                dane.tablica[i] = rd.Next(0, 20);
            }
            richTextBox1.Clear();
            for (int i = 0; i < dane.tablica.GetLength(0); i++)
            {
                richTextBox1.AppendText(dane.tablica[i].ToString()+ System.Environment.NewLine);
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.Show();
        }
    }
}
 

Klasa dane

namespace Klasy_test
{
    class Dane
    {
        public int[] tablica; 
    }
} 

oraz drugie okno w którym chciałbym wyświetlić dane z tablicy ale niestety jest pusta, dlaczego i jak to zrobić ??

namespace Klasy_test
{
    public partial class Form2 : Form
    {
        Dane dane = new Dane();
        public Form2()
        {
            InitializeComponent();
        }         
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dane.tablica.GetLength(0); i++)
            {
                richTextBox1.AppendText(dane.tablica[i].ToString() + System.Environment.NewLine);
            }
        }
    }
} 

Pozostało 580 znaków

2014-12-28 14:10
//form2
    public partial class Form2 : Form
    {
        Dane dane;
        public Form2(Dane dane)
        {
            InitializeComponent();
            this.dane = dane;
        } 
    }
 
//w form1
        private void button2_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2(dane);
            form2.Show();
        }
Nie wiem czy dobrze mowie,ale dobrze by chyba bylo opatrzec tez deklaracje obiektu klasy slowem static - Riw 2014-12-28 21:19

Pozostało 580 znaków

2014-12-28 20:34
0

Dzięki za pomoc byłem blisko. Tylko takie małe uzupełnienie klasa dane musi być publiczna:

namespace Klasy_test
{
    public class Dane
    {
        public int[] tablica; 
    }
} 

Pozostało 580 znaków

2014-12-29 02:40
0

No, a po dwóch miesiącach trwania takiego projektu, nagle okazuje się, że nie wiadomo właściwie kiedy i co zmienia dane w tej głównej klasie, ani czemu aplikacja wypieprza się przy połowie uruchomień.
Utrzymywać ani rozwijać tego się nie da, a wycofać się też szkoda.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0