【发布时间】:2016-03-26 18:27:50
【问题描述】:
这是我第一次尝试学习任何语言的课程。我正在尝试创建一个作为秒表的 Windows 窗体项目。我创建了一个具有启动秒表的 StartClock 方法的类,然后将经过的时间放入时间跨度变量中。然后我取一个 elapsedTime 字符串并将其设置为等于带有时间跨度变量的格式化字符串。代码如下。
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 方法,然后将我的时间间隔设置为每秒。
在我的计时器滴答事件中,我将标签设置为显示经过的时间字符串变量。当我运行它时,我没有收到任何错误,但标签没有改变。下面是我的 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;
}
}
我确定我错过了什么或做了一些愚蠢的事情,但我所有的谷歌 fu 还没有让我找到答案。提前致谢。
【问题讨论】:
-
当你说标签没有变化时,它有没有价值?还是它有一个初始值,但该值没有更新?
-
我将标签的文本属性设置为 00:00:00
标签: c#