Problem z dostępem do kontrolek z Form1 w innej w Formie.

0

Mam dwie formy, jedna to Form1.cs, druga to FormUstawienia.cs. Na Form1 jeden mam label, teraz z poziomu FormUstawienia chce zmienić kolor tego labela z Form1.cs. I próbuję to zrobić jak tu jest napiasne http://4programmers.net/Forum/C_i_.NET/123850-Przekazywanie_danych_miedzy_formami_-_blad?start=0, ale nie mam dostępu dalej.

Form1.cs

        private void buttonUstawienia_Click(object sender, EventArgs e)
        {
            FormUstawienia fustawienia = new FormUstawienia(this);
            fustawienia.form1 = this; //przekazanie aktualnego formularza do fustawienia
            fustawienia.Show();
        }
 

FormUstawienia.cs

 
    public partial class FormUstawienia : Form
    {
        public Form form1;
        public FormUstawienia(Form form1)
        {
            InitializeComponent();
            
        }
        private void linkLabelListaZmienKolor_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
               //tutaj chce się dostać do labela, który znajduje się na Form1
              // form1.l
            
        }
0

Nie wiem skąd wytrzasnąłeś ten kod, ale sensu w nim żadnego: konstruktor przyjmuje parametr, z którym nic nie robi, pole form1 jest publiczne bez powodu, na dodatek ma zły typ. To kod z losowego generatora znaków czy co?

Przekaż w konstruktorze klasy FormUstawienia obiekt typu Form1 (a nie Form, jak teraz) i przypiszesz go do pola prywatnego również typu Form1.
Zamiast odwoływać się do labela bezpośrednio, zrób w Form1 metodę publiczną, która wykonuje na tym labelu operacje, których potrzebujesz.

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