Kolekcje - różne formy

0

siemka,

mam zdefiniowana kolekcje w form1

public static Dictionary<int, baza> naszalista = new Dictionary<int, baza>();

w kolekcji sa zawarte wygenerowane obiekty.

W drugiej formie chce na podstawie stringa zawartego w danym obiekcie generować akcję, dlatego jadę przez tablicę

foreach (KeyValuePair<int, baza> luskanie in Form1.naszalista) { 
            
                if(
            }

i co w tym ifie powinno się znajdować:

luskanie.rodzaj = nie działa bo rodzaj jest w formie1 generowany
Form1.rodzaj nie bo rodzaj jest w formie ale jeszcze w obiekcie
form1.baza.rodzaj też nie chodzi

nie wiem jak powinienem wyłuskać

Pozdrawiam

0

podaj do Formy2 obiekt Formy1 jako np. parametr konstruktora.

0

Siemka, dzięki za odpowiedź, ale nie kumam do końca jak to zrobić.

Mam klasę "matkę" od której wszystkie klasy dziedziczą

public class baza{
public static string rodzaj;

}

obiekty od klas pochodnych są konstruowane w form1, chodzi Ci żeby zrobić klasę w formie2, której metody parametrem będzie obiekt z formy1?

Nie wywaliło mi błędu jak wpisałem baza.rodzaj, ale chyba to nie pasuje.

Gdyby to było w tej samej formie, to według poradnika pobrałbym to luskanie.Value.rodzaj, więc szukałem z tym luskaniem kombinacji, bo chyba to slowo jest odpowiedzialne za to, że co pętle sprawdzamy kolejny obiekt.

Pozdrawiam

Edited

Czytam i mało z tego kumam, kombinuje jak koń pod górę i cholera nic nie wychodzi, zrobiłem teraz kolekcje jako singletona, niby jest widoczna w drugiej formie, ale nadal nie wiem jak ta wartość przyrównywać, żeby to było pobierane z obiektu na którym w danym momencie spoczywa wskaźnik pętli.

Co do wrzucania formy jako konstruktor to tu gdzieś powiina się forma jako parametr pojawić ??

 public diagram()
        {
            InitializeComponent();
        } 

Kod z którym walczę

Deklaracja kolekcji

   public class DictionarySigleton
    {

        public static readonly Dictionary<int, baza> naszalista = new Dictionary<int, baza>(); // deklaracja kolekcji, w której przechowywane będa obiekty klas(funkcje/zdarzenia/xor/or/and)
    }

klasy jakie może przechowywać

 public class baza    // deklaracja klasy bazowje dla roznych elementow notacji 
    {
      public static string rodzaj;
      public static int idpoprzedniego;

    }

    public class funkcjazdarzenie : baza // narazie funkcja a zdarzenie nie roznia sie elementami jakie zawieraja( klasa sie zmieni jak bedziemy przedstawiac je graficznie           
    {
      public static string opis;
      public static string nazwa;
        public funkcjazdarzenie(string krodzaj, string knazwa, string kopis, int kidpoprzedniego)
        {
            rodzaj = krodzaj;
            idpoprzedniego = kidpoprzedniego;
            nazwa = knazwa;
            opis = kopis;
        }

    }

    public class xor : baza //klasa odpowiedzialna za xora 
    {
        public xor(string krodzaj,int kidpoprzedniego)
        {
            rodzaj = krodzaj;
            idpoprzedniego = kidpoprzedniego;
        }
        

    }

    public class or : baza //klasa odpowiedzialna za ora 
    {
        public or(string krodzaj,int kidpoprzedniego)
        {
            rodzaj = krodzaj;
            idpoprzedniego = kidpoprzedniego;
        }

    }

    public class and : baza // klasa odpowiedzialna za and 
    {
        public and(string krodzaj,int kidpoprzedniego)
        {
            rodzaj = krodzaj;
            idpoprzedniego = kidpoprzedniego;
        }
    } 

druga forma

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _1dwa3
{
    public partial class diagram : Form
    {
    
        public diagram()
        {
            InitializeComponent();
        }

        private void diagram_Load(object sender, EventArgs e)
        {

        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            SolidBrush laczniki = new SolidBrush(Color.Gray);
            Pen lacznikipen = new Pen(Color.Gray, 5);
            SolidBrush funkcja = new SolidBrush(Color.Green);
            Pen funkcjapen = new Pen(Color.Green, 5);
            SolidBrush zdarzenie = new SolidBrush(Color.Red);
            Pen zdarzeniepen = new Pen(Color.Red, 5);
            SolidBrush strzalka = new SolidBrush(Color.Black);
            Graphics rysujem = panel1.CreateGraphics();

            // for (int jedziemy = 1; jedziemy <= Form1.i; jedziemy++) {
            //           }
            foreach (KeyValuePair<int, baza> luskanie in DictionarySigleton.naszalista)
            {

                if (DictionarySigleton.naszalista. == "funkcja")
                {
                    rysujem.FillEllipse(funkcja,20,20,40,20);
                    rysujem.DrawString(funkcjazdarzenie.nazwa, new Font("Segoe", 9), Brushes.Green, 20, 20);
                }
                else if (baza.rodzaj == "zdarzenie")
                {
                    rysujem.FillPie(zdarzenie,20,20,20,20,20,20);
                }
                else if (baza.rodzaj == "XOR")
                {

                }
                else if (baza.rodzaj == "OR")
                {

                }
                else if (baza.rodzaj == "AND")
                {

                }
            }
        }
    }
}

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