Jak zrobić że podczas trzymania przycisku wykonuje się i++ ?
Jakiego przycisku? Klawiatury? Ekranu? Aplikacja desktopowa czy WWW?
Button myszką Windows forms
zdarzenie OnMouseDown http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousedown.aspx
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();
}
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
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.
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.