2

众所周知,微软选择不在 Windows 11 系统托盘任务栏中显示秒数。因此,我决定创建一个小工具。

一个简单的计时器和一个在时钟旁边显示秒数的标签。我正在使用的代码是:


Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.StartPosition = FormStartPosition.Manual
        Me.Location = New Point(1891, 1029)
        Me.Size = New Size(21, 18)

        Me.TransparencyKey = Color.LightBlue
        Me.BackColor = Color.LightBlue
    End Sub
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Label1.Text = ":" + Format(Now, "ss")
    End Sub
End Class

Always on top 属性为真,但如果我单击任务栏,表单将从那里消失。有没有办法解决它?谢谢

4

2 回答 2

0

它正在消失,因为它正在失去焦点。如果您希望它持续保持焦点或“重新聚焦”,您可以引入一种 hacky 方法,该方法将在每个计时器滴答时重新聚焦表单。

因此,您可以尝试添加Me.Focus()timer1_tick事件中。

在这个 SO 帖子上分享了一个这样的例子。

于 2021-10-25T18:03:58.257 回答
0

过了一段时间,我决定继续开发这个小工具,由于某些原因,每次有通知时表单的位置都会向上移动,所以我最终使用System.Timers.Timer中的以下代码强制位置每 0.1 秒(100 毫秒)触发其Timer.Tick事件的对象

 Me.StartPosition = FormStartPosition.Manual
        Me.Location = New Point(1897, 1039)
        Me.Size = New Size(21, 18)
        Me.TransparencyKey = Color.LightBlue
        Me.BackColor = Color.LightBlue
        Label1.Text = Format(Now, "ss")
        Me.TopMost = True

简单,但高效。

于 2022-01-07T23:57:09.773 回答