VB のたまご

作成日: 2017/03/05, 更新日: 2017/03/05



RepeatButton

    イメージ
  •  RepeatButton は、ボタンを押してから離すまでの間、クリックイベントを繰り返し発生させることができるコントロールです。 とりあえずどういう風に動くのか見てみましょう。 以下サンプルです。「RepeatButtonWindow1」という画面で作成していますが、「MainWindow」に書いても構いません。

  • スポンサーリンク


    <Window x:Class="RepeatButtonWindow1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="RepeatButtonWindow1" Height="300" Width="300">
        
        <Grid>
    
            <RepeatButton Content="repeatbutton1" Click="repeatbutton1_Click" />
    
        </Grid>
        
    </Window>
    

    Public Class RepeatButtonWindow1
    
        Private Sub repeatbutton1_Click(sender As Object, e As RoutedEventArgs)
    
            Console.WriteLine($"{Now.ToString("hh:mm:ss")} clicked.")
    
        End Sub
    
    End Class
    

  •  これを実行して、ボタンをクリックしっぱなしにすると、何回も Click イベントが走っていることが分かります。 RepeatButton では、Click イベントの繰り返しが発生するまでの待機時間、Click イベントの発生間隔を変更することができます。

  • スポンサーリンク


  •  例えば以下は、最初のクリックを行い、3秒押されたら、1秒間隔で再度の Click イベントを繰り返す設定になります。

  • <Window x:Class="RepeatButtonWindow2"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:z04_NormalControls"
            mc:Ignorable="d"
            Title="RepeatButtonWindow2" Height="300" Width="300">
        <Grid>
            <RepeatButton Name="repeatbutton1" Content="repeatbutton1" Click="repeatbutton1_Click"
                          Delay="3000" Interval="1000" />
        </Grid>
    </Window>
    

    Public Class RepeatButtonWindow2
    
        Private Sub repeatbutton1_Click(sender As Object, e As RoutedEventArgs)
    
            Console.WriteLine($"{Now.ToString("hh:mm:ss")} clicked.")
    
        End Sub
    
    End Class