我卡在这里。我有一个复选框。选中后,启动计时器。当未检查停止计时器。我可以在这里使用一些帮助。我试过检查,未检查,并单击事件。没有什么是停止计时器。它只是让运行...WPF C#复选框控制一个定时器
的XAML:(有作秀所有三个事件)
<CheckBox x:Name="CbAutoRefresh" Grid.Row="1" ClipToBounds="True" HorizontalAlignment="Left" Content="Enable Auto Refresh" Margin="10,0,0,0" Width="150" Click="CbAutoRefresh_Click" Checked="CbAutoRefresh_Checked" Unchecked="CbAutoRefresh_Unchecked" />
C#:(所有三次尝试)
private void CbAutoRefresh_Click(object sender, RoutedEventArgs e)
{
var aTimer = new Timer();
if (CbAutoRefresh.IsChecked == true)
{
//start a timer:
aTimer.Elapsed += OnTimedEvent;
aTimer.Interval = 60000;
aTimer.Enabled = true;
}
else
{
aTimer.Enabled = false;
}
}
private void CbAutoRefresh_Checked(object sender, RoutedEventArgs e)
{
//start a timer:
var aTimer = new Timer();
aTimer.Elapsed += OnTimedEvent;
aTimer.Interval = 60000;
aTimer.Enabled = true;
}
private void CbAutoRefresh_Unchecked(object sender, RoutedEventArgs e)
{
var aTimer = new Timer {Enabled = false};
}
我甚至想这一点,这是何况在Stack Overflow
<CheckBox Checked="CheckBoxChanged" Unchecked="CheckBoxChanged"/>
private void CheckBoxChanged(object sender, RoutedEventArgs e)
{
MessageBox.Show("Eureka, it changed!");
}
不上每一个事件创建一个新的'Timer'。在窗口对象(窗口字段/属性)中声明1个定时器,在构造函数中初始化它,并在任何事件处理程序中处理它。目前你正在运行*多个*定时器 – ASh