Button inkrementacja podczas trzymania

0

Jak zrobić że podczas trzymania przycisku wykonuje się i++ ?

0

Jakiego przycisku? Klawiatury? Ekranu? Aplikacja desktopowa czy WWW?

0

Button myszką Windows forms

0

Działa tylko jak klikne to o 1 zwieksza, a ma zwiskaszac caly czas jak trzymam ?

private int i = 0;

        private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            label1.Text = i++.ToString();
        }
0

Sprawdź zdarzenie MouseClick http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseclick.aspx
Nie mam VS (taka praca) żeby samemu coś przetestować.

// Jak ktoś kiedyś zauważył w biedronce VS mi nie potrzebne :D

0

Kontrolka Timer. Ustaw Timer start() na MouseDown (dla tego przycisku) i Timer stop() na MouseUp. W Timer tick() rób inkrementację i wyświetlenie w kontrolce.

0

Hehehe, mogłem wcześniej przeczytać posta marcinsvr. On znalazł dużo prostsze rozwiązanie:). Pomimo tego zostawiam to co napisałem jako gorszą alternatywę :).

Twój problem nie jest trudny do rozwiązania. Musisz użyć zdarzenia MouseDown, MouseUp, MouseEnter i MouseLeave. Robisz sobie dwie flagi, jedna która będzie sprawdzać czy jesteś na buttonie czy nie i druga czy button jest wciśnięty. No i musisz zaprzęgnąć osobny wątek który będzie Ci inkrementował i. W obsłudze zdarzeń robisz coś takiego:

        private void button1_MouseDown(object sender, MouseEventArgs e)
        {
            this.isButtonPress = true;
//Tutaj uruchamiasz wątek            
        }

        private void button1_MouseEnter(object sender, EventArgs e)
        {
            isMouseIsOnButton = true;
        }

        private void button1_MouseLeave(object sender, EventArgs e)
        {
            isMouseIsOnButton = false;
        }

        private void button1_MouseUp(object sender, MouseEventArgs e)
        {
            this.isButtonPress = false;
        } 

A w wątku wpisujesz while, który działa dopuki, doputy flagi są różne od false.

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