在系统托盘上方显示表格

时间:2015-05-26 13:51:37

标签: vb.net

我正在开发一种主要停靠在系统托盘中的工具。但是,如果单击该图标,则会打开表单以显示表单上显示的更多选项。 (不是上下文菜单)但是,我想将表单直接放在系统托盘上方,并且不知道如何执行此操作。此应用程序将在具有不同屏幕分辨率的多台用户计算机上运行,​​因此对预设坐标进行硬编码不是一种可行的解决方案。

我确实搜索了系统托盘的FindWindow(),但在Google / Bing中找不到任何有用的东西。

2 个答案:

答案 0 :(得分:0)

Screen.WorkingArea属性可让您获得主屏幕"可用分辨率"。

只需将您的窗口放在working area height - window height左侧,窗口放在working area width - window width左侧(如有必要,请进行调整以获得一点余量)。

更新:此外,还要考虑任务栏的位置和大小:How do I get the taskbar's position and size?

答案 1 :(得分:0)

你可以用这个:

首先设置形式TopMost

MyForm.TopMost = True

要在右侧的任务栏顶部显示表单,请举例如下:

Private Sub SetFormPosition()
    Dim leftpos As Long
    Dim toppos As Long
    leftpos = (My.Computer.Screen.WorkingArea.Right - 2) - Me.Width
    toppos = (My.Computer.Screen.WorkingArea.Bottom - 2) - Me.Height
    Me.Location = New Point(leftpos, toppos)
End Sub

您可以玩游戏并更改值。 (-2)接近边缘,如果你输入更大的数字,你将远离边缘,依此类推。您还可以更改要显示表单的My.Computer.Screen.WorkingArea

您可以使用 NotifyIcon_MouseClick 事件

上的代码
  Private Sub NotifyIcon_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon.MouseClick
        If e.Button = Windows.Forms.MouseButtons.Left Then
            SetFormPosition()
            MyForm.Show()
        End If
  End Sub