Wyświetlenie wyniku w Form2

0

Witam.

W Form1 dokonuje sobie jakiś obliczeń (...)
I chciałbym wyświetlać wynik w Form2. Dokładnie aby metoda: Wyswietl(); włącza okienko z wynikiem.

Spróbowałem zrobić jak tu pokazują: http://forum.pcformat.pl/C-przekazywanie-danych-miedzy-formami-w-2-strony-t

Niby proste.

I form1:

  public partial class Form1 : Form
    {

        Form2 forma2; 
        public Form1()
        {
            InitializeComponent();


            wlaczCombo();

            cbCzas.SelectedIndex = 0;
            cbWojewodztwo.SelectedIndex = 0;


        }

        private void Form1_Load(object sender, EventArgs e)
        {
            forma2 = new Form2(this);       // Tworzymy obiekt Form2, przekazując mu parametr 'this' czyli uchwyt do Form1.
            forma2.Visible = true;
        }


dalej jakaś metoda:

 public void wyswietl()
        {
           MessageBox.Show(dWynik.ToString());
        }

i w FORM2:

  public partial class Form2 : Form
    {
        private Form1 formaa1;             
        public Form2(Form1 forma1)       
        {
            InitializeComponent();
            formaa1 = forma1;              
        }

        formaa1.wyswietl();
    }

Dostaję: Error 1 Invalid token '(' in class, struct, or interface member declaration

Co robię nie tak ?

0

Umieść wywołanie "formaa1.wyswietl();" w jakiejś metodzie bo teraz wywołujesz to w deklaracji klasy.

0

Dzieki, działa

A powiesz mi jeszcze jak mogę podpiąć dwa zdarzenia ?
Mam np. textBox - i jeżeli zmienię w nim tekst to wywołuje: Metoda1 ... a ja bym chciał wywoływać także Metode2 aby jednoczesnie leciało: Metoda1 i Metoda2
Da się tak?

Poprawka nie działa
w Form1 istnieje zmienna - i chcę się nią zająć (wyświetlać na listBox z form2)

  public void wyswietl()
        {

            formaa1.wyswietl();

            ListViewItem item = new ListViewItem();
            item.SubItems.Add(dWynik.ToString());
           // item.SubItems.Add(textBox3.Text);
           // item.SubItems.Add(textBox4.Text);
            listView1.Items.Add(item);

            
        }

I błąd, że dWynik , nie istnieje w tym kontekście ??

0

Skoro dWynik masz z form1 to pewnie musisz wpisać:
formaa1.dWynik.ToString();

Trochę ciężko domyślić się o co dokładni Ci chodzi.

0

Już wiem jak ma być.

Mam się do kontrolki ListBox odwołać w Form1.
A w Form2 jest:

 public void wyswietl()
        {

        }

Tylko taka budowa. I to FORM1 wywołuje okienko, i to wygląda tak:

 public void wyswietl()
        {
       //    MessageBox.Show(dWynik.ToString());

            ListViewItem lvi = new ListViewItem(dWynik.ToString("#.##") + " kWh");
           lvi.SubItems.Add(dCenaWynik.ToString("#.##") + " pln za kWh");
           forma2.listView1.Items.Add(lvi);


           forma2.Visible = true;

        }

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