这是我在任何语言中学习类的第一次尝试。我正在尝试创建一个Windows窗体项目,它是一个秒表。我创建了一个类,其中有一个StartClock方法来启动停表,然后将经过的时间放入一个TimeSpan变量中。然后,我将elapsedTime字符串设置为格式化字符串与TimeSpan变量相等。以下是代码。
public class CStopWatch
{
Stopwatch sw = new Stopwatch();
private DateTime startTime;
private DateTime stopTime;
private String elapsedTime;
public String ElapsedTime
{
get
{
return elapsedTime;
}
}
public String StartClock()
{
sw.Start();
TimeSpan ts = sw.Elapsed;
elapsedTime = String.Format("{0:00}:{1:00}:{2:00}",
ts.Hours, ts.Minutes, ts.Seconds / 10);
return elapsedTime;
}
public void StopClock()
{
// sw.Stop();
}
}
在Windows表单中,我调用了我的CStopwatch类的一个新实例,然后在开始按钮的点击事件中启动我的表单计时器,调用我的StartClock方法,然后将时间间隔设置为每秒钟。
在我的计时器Tick事件中,我将标签设置为显示经过的时间字符串变量。当我运行这个程序时,没有出现任何错误,但标签没有改变。下面是我的Windows表单代码。
public partial class Form1 : Form
{
// string elapsedTime;
// public string elapsedTime { get { return elapsedTime; } }
CStopWatch sw = new CStopWatch();
public Form1()
{
InitializeComponent();
}
private void lblTime_Click(object sender, EventArgs e)
{
}
private void btnStart_Click(object sender, EventArgs e)
{
timer.Enabled = true;
sw.StartClock();
timer.Interval = 1000;
//Testing without using classes
/*
timer.Enabled = true;
sw.Start();
timer.Interval = 1000;
TimeSpan ts = sw.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}",
ts.Hours, ts.Minutes, ts.Seconds / 10);
*/
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer_Tick(object sender, EventArgs e)
{
lblTime.Text = sw.ElapsedTime;
}
}
我肯定我错过了什么或者做了一些愚蠢的事情,但是我的所有谷歌搜索都没有给我带来答案。提前致谢。