演练:在运行时更新状态栏信息

重要说明重要事项

StatusStripToolStripStatusLabel 控件取代了 StatusBarStatusBarPanel 控件并添加了功能;但是,可以选择保留 StatusBarStatusBarPanel 控件以实现向后兼容并供将来使用。

经常会有程序要求您根据应用程序状态的更改或其他用户交互情况,在运行时动态更新状态栏面板的内容。 这是一种用于执行以下任务的常用方式:通知用户启用了 Caps Lock、Num Lock 或 Scroll Lock 之类的键,或者将日期或时钟作为方便的引用来提供。

在下面的示例中,将使用 StatusBarPanel 类的一个实例来承载时钟。

准备更新状态栏

  1. 创建新的 Windows 窗体。

  2. StatusBar 控件添加到您的窗体。 有关详细信息,请参见 如何:向 Windows 窗体添加控件

  3. 将状态栏面板添加到您的 StatusBar 控件。 有关详细信息,请参见 如何:向 StatusBar 控件添加面板

  4. 对于添加至窗体的 StatusBar 控件,将 ShowPanels 属性设置为 true。

  5. 将 Windows 窗体 Timer 组件添加到该窗体。

    提示

    Windows 窗体 System.Windows.Forms.Timer 组件是为 Windows 窗体环境设计的。 如果您需要适合服务器环境的计时器,请参见 Introduction to Server-Based Timers

  6. Enabled 属性设置为 true。

  7. TimerInterval 属性设置为 30000。

    提示

    Timer 组件的 Interval 属性应设置为 30 秒(30,000 毫秒)以确保所显示的时间反映准确的时间。

通过实现计时器更新状态栏

  • 将下面的代码插入 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 属性的值。

请参见

任务

如何:向 StatusBar 控件添加面板

如何:确定 Windows 窗体 StatusBar 控件中被单击的面板

参考

StatusBar 控件概述(Windows 窗体)

StatusBar

ToolStripStatusLabel