0
点赞
收藏
分享

微信扫一扫

在WPF中实时显示年月日时分秒(VB.net)

Aliven888 2022-01-26 阅读 70

由于WPF中是没有定时器的,在网上查看了许多例子,尤其使用WPF时,又没有Timer控件好不容易找到了显示时间代码,发现只能显示一次最新读取的时间,而且VB.net编写的WPF程序少之又少,针对这一现象分享给大家我自己总结的程序,如有问题,请大家多多担待。废话不多说,开码!
使用环境VS2010
步骤1:创建VB.net下的WPF界面
打开VS2010→点击新建项目→选择VB WPF应用程序→重新命名为:WpfApp-DisplayDataTime→确定
在这里插入图片描述

步骤2:界面布局
点击工具箱→选中TextBlock→拖动到3的位置
在这里插入图片描述

如果没有工具箱怎么办,不要慌点击视图选择工具箱就出来了
在这里插入图片描述

步骤3:记住TextBlock控件的Name属性
在这里插入图片描述

步骤4:双击空白处,进入界面初始化事件过程中
在这里插入图片描述

步骤5:在Class MainWindow上声明命名空间并且在界面初始化事件上定义DispatcherTimer类

Imports System.Windows.Threading '引用提供支持多线程编程的类和接口命名控件

如果没有这个命名空间,下方DispatcherTimer类就是用不了
Public WithEvents ShowTimer As DispatcherTimer '定义DispatcherTimer类为定时器
这个类是干嘛用的呢是:集成到按指定时间间隔和指定优先级处理的 Dispatcher 队列中的计时器。也就是说由于WPF中没有定时器,咱们手动生成一个定时器的类。
之后代码为这样:

```vbnet
Imports System.Windows.Threading                                   '引用提供支持多线程编程的类和接口命名控件
Class MainWindow
    Public WithEvents ShowTimer As DispatcherTimer                 '定义DispatcherTimer类为定时器
    Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
   '使用定时器过程代码
End Sub

步骤6:使用定时器,要先实例化定时器才可以使用
在界面初始化事件中写如下代码:

  ShowTimer = New System.Windows.Threading.DispatcherTimer() '实例化定时器
        AddHandler ShowTimer.Tick, AddressOf ShowCurTimer    '起个定时器一直获取当前时间
        ShowTimer.Interval = New TimeSpan(0, 0, 0, 1, 0)     '选择定时器间隔为1秒刷新一次
        ShowTimer.Start()                                    '开始定时器

步骤7:显示时间
给TextBlock赋值函数代码如下:
其中TextBlock1指的是控件的Name属性,也是刚才需要记住的

   Public Sub ShowCurTimer(ByVal sender As Object, ByVal e As EventArgs)
        TextBlock1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") '获得年月日时分秒
    End Sub
最后全部代码为下方代码
Imports System.Windows.Threading                                   '引用提供支持多线程编程的类和接口命名控件
Class MainWindow
    Public WithEvents ShowTimer As DispatcherTimer                 '定义DispatcherTimer类为定时器
    Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
        ShowTimer = New System.Windows.Threading.DispatcherTimer() '实例化定时器
        AddHandler ShowTimer.Tick, AddressOf ShowCurTimer          '起个Timer一直获取当前时间
        ShowTimer.Interval = New TimeSpan(0, 0, 0, 1, 0)           '选择定时器间隔为1秒刷新一次
        ShowTimer.Start()                                          '开始定时器
    End Sub
    '显示时间
    Public Sub ShowCurTimer(ByVal sender As Object, ByVal e As EventArgs)
        TextBlock1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") '获得年月日时分秒
    End Sub
End Class
举报

相关推荐

0 条评论