Aktywacja po wciśnięciu buttona

0

Witam.
Chcę aby po wciśnięciu buttona wykonywała się jakaś akcja (np wyskakuje okienko, coś tam zmienia kolor itp) jednak zmiana ta powinna pozostawać do momentu gdy nie zostanie kliknięty inny button. Np mam 2 przyciski klikam pierwszy z nich wyskakuje okno powitalne klikam drugi i znika.
Oczywiście mogę zrobić to tak, że jeden button powoduje to, że dane okno jest widzialne a drugi powoduje jego zniknięcie ale jeśli buttonów mam powiedzmy 100 i takich okienek 10 to raczej nie jest to za dobre rozwiązanie. Myślałem nad różnymi eventami np selectem ale to też nie będzie poprawnie działać.
Drugi problem stanowi kontrola nad scrollem, w jaki sposób mogę określić kiedy ma się on pojawić? Mam ustawione zachodzenie pewnego elementu na pictureboxa, jednak chce aby scroll pojawiał się w momencie gdy element ten zbliży się do pictureboxa a nie gdy okno będzie od niego mniejsze. Próbowałem z marginem i paddingiem na wzór CSS ale nie chce działać.
Trzecim problemem jest lokalizacja panelu, chciałem aby jeden panel był na drugim ale gdy kopiuje pole "location" pojawia się on w innym miejscu, dlaczego?

0

Oczywiście mogę zrobić to tak, że jeden button powoduje to, że dane okno jest widzialne a drugi powoduje jego zniknięcie ale jeśli buttonów mam powiedzmy 100 i takich okienek 10 to raczej nie jest to za dobre rozwiązanie.
Każdy z tych 100 przycisków powinien dzielić tę samą funkcję na zdarzenie Click, a rozróżniaj je po parametrze sender.

Drugi problem stanowi kontrola nad scrollem, w jaki sposób mogę określić kiedy ma się on pojawić?
Możesz po prostu ręcznie go pokazywać albo chować na jakieś zdarzenie, ale bez obrazka nie bardzo wyobrażam sobie o co tutaj chodzi.

Trzecim problemem jest lokalizacja panelu, chciałem aby jeden panel był na drugim ale gdy kopiuje pole "location" pojawia się on w innym miejscu, dlaczego?
Może leży na innym panelu pod spodem?

0

Każdy z tych 100 przycisków powinien dzielić tę samą funkcję na zdarzenie Click, a rozróżniaj je po parametrze sender.

Czy coś takiego wystarczy czy jest jakiś bardziej elegancki sposób, bo chyba i tak każdy button musi mieć event aby móc wywołać ten kod. Lepiej stosować switche czy if'y ?

private void Check(object sender)
        {
            if (sender.ToString() == "New") this.Text = "dziala";
            else this.Text = "nie dziala";

            switch (sender.ToString())
            { 
                case "New":
                    this.Text = "New";
                break;
                default:
                    this.Text = "oo";
                break;

            }
private void button2_Click(object sender, EventArgs e)
{
    Check(sender);
}

 

Możesz po prostu ręcznie go pokazywać albo chować na jakieś zdarzenie, ale bez obrazka nie bardzo wyobrażam sobie o co tutaj chodzi.

Nie wiem czy to widać na poniższym screenie ale ten poniższy panel jest zakotwiczony do dołu głównego okna, kiedy zmniejszamy okno panel ten zaczyna zachodzić na pictureboxa i w momencie gdy okno stanie się mniejsze niż picturebox to wtedy pojawia się scroll. Ja chcę aby w momencie gdy dolny panel będzie w odległości załóżmy 5 px od picture boxa w przypadku gdy zmniejszamy okno pojawił się scroll bar umożliwiający przeglądanie obrazka bo tak to część obrazka zasłania nam panel. Myślałem nad eventem wykorzystującym zmianę rozmiaru okna ale okno główne ma opcje autoscroll i nie wiem jak to zrobić, myślałem też nad dodatkowym scrollem ale nie wiem jak poruszać za jego pomocą oknem, min size nie wchodzi za bardzo w grę, .
http://imageshack.us/photo/my-images/689/ococho.jpg/

Może leży na innym panelu pod spodem?

Sprawdzałem ale oba są dodawane jako elementy głównego okna.

this.Controls.Add(this.panel3);
this.Controls.Add(this.controlPanel);

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