如何在eventandler中使用对象



这是我在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(); 
} 

相关内容

  • 没有找到相关文章

最新更新