2014-01-20 5 views
1

Как я могу сделать Button, который выполняет код под ним только тогда, когда нажата и удерживается Button (скажем, в течение одной секунды) и останавливается, когда она отпущена?Выполнить действие только при удерживании кнопки

+2

Любые усилия до сих пор? –

+0

должно быть событие Hold на кнопках –

ответ

1

Вам не нужно использовать какие-либо таймеры. Класс Button содержит событие для Hold.

Вы можете использовать его как это:

<Button Hold="eventHandler"/> 

сенсорного ввода руководство here.

+0

Отлично работает, спасибо – user3209792

+0

Без проблем, рад помочь! – lhan

0

Вы можете использовать Timer так:

private void button1_MouseLeftDown(object sender, MouseEventArgs e) 
{ 
    timer1.Enabled = true; 
    timer1.Start(); 
} 

private void button1_MouseLeftDown(object sender, MouseEventArgs e) 
{ 
    timer1.Stop(); 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    // Do your job 
} 

Но лучший способ это Hold событие.

0

Button имеет логическое свойство IsPressed, которое вы можете проверить; это правда, когда он нажат, false в противном случае.

Также вы можете использовать несколько событий. Один из способов - использовать событие TouchDown, которое срабатывает, когда вы нажимаете элемент на сенсорном экране. И TouchUp срабатывает, когда палец поднимается с кнопки.

Вы можете прочитать больше here.

Смежные вопросы