这是我在mainpage . example .cs中的代码
public MainPage()
{
InitializeComponent();
DispatcherTimer dt = new DispatcherTimer();
dt.Interval = new TimeSpan(0, 0, 0, 0, 1000); // 1 Second
dt.Tick += new EventHandler(dtTick);
}
现在在MainPage构造器之后,我有和dtTick EventHandler做一些事情和一个EventHandler的开始按钮,使计时器工作
void dtTick(object sender, EventArgs e)
{
var time = DateTime.Parse(theTimer.Text);
time = time.AddSeconds(1);
theTimer.Text = time.ToString("HH:mm:ss");
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
dt.Start();
}
所以我的问题是我如何如何使dt.Start();工作,因为它是一个方法调用的对象是位于我的MainPage()
你不能让它这样工作-在构造函数中声明的dt
仅作用于构造函数,因此不能在构造函数之外访问。
您需要做的是在模块级别声明dt
,然后您可以在mainpage . example .cs中的任何地方访问它:
public class MainPage
{
private DispatcherTimer _dt;
public MainPage()
{
_dt = new DispatcherTimer();
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
_dt.Start();
}
}
在你的代码后台文件中,将Timer暴露为公共/受保护或私有成员或字段。
private DispatcherTimer dt = null;
public MainPage()
{
InitializeComponent();
this.dt = new DispatcherTimer();
this.dt.Interval = new TimeSpan(0, 0, 0, 0, 1000); // 1 Second
this.dt.Tick += new EventHandler(dtTick);
}
private void startButton_Click(object sender, RoutedEventArgs e)
{
if (this.dt != null)
this.dt.Start();
}