Brak komunikacji Control <-> Form1

Brak komunikacji Control <-> Form1
0

Witam serdecznie.

Piszę sobie mały programik, w którym użytkownik na początku podaje swoje imię w kontrolce, a po kliknięciu Zapisz kontrolka powinna zniknąć oraz Form1 powinien mieć ustawioną wartość Enabled = true; Problem w tym, że kontrolka nie chce zniknąć, a Form1 nie chce się odblokować. Co robię nie tak? o_O

Kontrolka:

Kopiuj
public partial class dane : UserControl
    {
        public event EventHandler Zapisz;

        public dane()
        {
            InitializeComponent();
            button1.Click += button1_Click;
        }

        void button1_Click(object sender, EventArgs e)
        {
            foreach (var item in this.Parent.Controls)
            {
                if (item is dane && !item.Equals(this))
                {
                    (item as dane).Hide();
                }
            }
            OnZapisz();
        }

        protected virtual void OnZapisz()
        {
            if (Zapisz != null)
            {
                Zapisz(this, new EventArgs());
            }
        }
    }

Form1:

Kopiuj
        private void dane_Zapisz(object sender, EventArgs e)
        {
            (sender as Control).Hide();
        }
0

Jeszcze jedna sprawa. Żeby z Kontrolki móc sterować tym co jest na Form zrobiłem ( w kontrolce ):

Kopiuj
 Form1 f1 = (Form1)this.Parent;

Problem jednak w tym, że to co chcę zmieniać nie dotyczy bezpośrednio na Formie tylko na Formie na Panelu. Jak mógłbym dobrać się do tego?

Kopiuj
 f1.panel2.Enabled = true;

nie działa.
Kombinowałem także ze zmianę uprawnień dla panel2 i wtedy widzę go w ten sposób, jednak jest problem typu:
Nie można rzutować obiektu typu 'System.Windows.Forms.Panel' na typ 'Program.Form1'.

Chyba powinienem wziąć Parenta Parenta, ale nie za bardzo kumam jak...
Jakieś rady w oby przypadkach? Będę bardzo wdzięczny :)
Pozdrawiam

SK
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:117
0

Może wyślij cały program to zobaczę w wolnej chwili.


0
Kopiuj
   if (item is dane && !item.Equals(this))

Co chciałeś osiągnąć tym warunkiem? Moim zdaniem tutaj jest problem.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.