zmiany w komponencie

0

Witam, piszę ostatnio program i mam taką funkcję:

        public void HideAllPanel(Button but, int X, Timer Tim)
        {
            but.Text = "a";             // przekazany w parametrze
            InnyPrzycisk.Text = "b"; // lezy na formie jest publiczny
        }

to w uproszczeniu oczywiście. Problem w tym, że zmiany w komponencie "but" widać, a zmiany w komponencie "InnyPrzycisk" nie.

Jak naprawić to, tak by nie przekazywać w parametrze komponentu?

0

A ten InnyPrzycisk to co to jest? Pole aktualnej klasy, przekazane czy pole innego Forma, czy jeszcze coś innego?

0

InnyPrzycisk leży sobie na formie numer 1. Innych formatek nie ma.

zauważyłem, że sprawa wygląda tak:
jeśli powyższa funkcja, którą przedstawiłem jest w klasie "form1" dokładniej:

public partial class Form1 : Form

to wszystko działa.
Jednak, gdy ta sama funkcja jest w innej klasie np:

class AnimationInterface : Form1

to już funkcja nie działa. Działa jedynie zmiana komponentu przekazanego w parametrze.

wywołanie wygląda np tak:

                case AnimationInterface.Check.Process :
                    HideAllPanel(panel2, 500, timer1); // tutaj dziala bo w tej samej klasie
                    break;
                case AnimationInterface.Check.System:
                    AnimationInter.HideAllPanel(panel3, 300, timer1); // a tutaj nie dziala, ponieważ w innej klasie jest
                    break;

jak zrobić to by działało, ale funkcja była w innej klasie niż form1?

0

Ok, rozwiązałem problem. Podam odpowiedź może komuś jeszcze się przyda kiedyś.

najpierw tworzymy obiekt w klasie drugiej:

private Form1 my;

potem piszemy konstruktor do tej klasy:

        public AnimationInterface(Form1 Home)
        {
            my = Home;
        }

potem w pierwszej klasie towrzymy obiekt :

AnimationInterface AnimationInter = new AnimationInterface(this);

i wywołujemy:

AnimationInter.HideAllPanel(panel2, 500, timer1);

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