演练:在运行时更新状态栏信息
重要
StatusStrip 和 ToolStripStatusLabel 控件取代了 StatusBar 和 StatusBarPanel 控件并向其中添加了新功能;但也可选择保留 StatusBar 和 StatusBarPanel 控件以备后向兼容和供将来使用。
通常情况下,程序会要求根据应用程序状态的更改或其他用户交互情况,在运行时动态更新状态栏面板的内容。 这是一种用于执行以下任务的常用方式:通知用户启用了 CAPS LOCK、NUM LOCK 或 SCROLL LOCK 之类的键,或者将日期或时钟作为方便的引用提供。
在下面的示例中,将使用 StatusBarPanel 类的实例来承载时钟。
准备更新状态栏
创建新的 Windows 窗体。
向窗体添加一个 StatusBar 控件。 有关详细信息,请参阅如何:向 Windows 窗体添加控件。
将状态栏面板添加到 StatusBar 控件。 有关详细信息,请参阅如何:向 StatusBar 控件添加面板。
对于添加到窗体中的 StatusBar 控件,请将 ShowPanels 属性设置为
true
。将 Windows 窗体 Timer 组件添加到窗体。
注意
Windows 窗体 System.Windows.Forms.Timer 组件专为 Windows 窗体环境设计。 如果需要适合服务器环境的计时器,请参阅基于服务器的计时器介绍。
将 Enabled 属性设置为
true
。
通过实现计时器更新状态栏
将以下代码插入到 Timer 组件的事件处理程序中,以更新 StatusBar 控件的面板。
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick StatusBar1.Panels(0).Text = Now.ToShortTimeString End Sub
private void timer1_Tick(object sender, System.EventArgs e) { statusBar1.Panels[0].Text = DateTime.Now.ToShortTimeString(); }
private: System::Void timer1_Tick(System::Object ^ sender, System::EventArgs ^ e) { statusBar1->Panels[0]->Text = DateTime::Now.ToShortTimeString(); }
此时,就可以运行该应用程序并观察在状态栏面板中运行的时钟。
测试应用程序
调试该应用程序,然后按 F5 运行。 有关调试的详细信息,请参阅在 Visual Studio 中进行调试。
注意
大约 30 秒之后,时钟才会出现在状态栏上。 这样可以获得最精确的时间。 相反,若要使时钟早些出现,应当减小在上述步骤 7 中设置的 Interval 属性的值。