Form on top of others in VB.Net

The Form class in VB.NET serves as a fundamental building block for representing a window within an application. This versatile class encompasses various types of windows, including dialog boxes, modeless windows, and Multiple Document Interface (MDI) client and parent windows.

In earlier versions like VB6, achieving the behavior of keeping a form always on top required invoking a Win32API call to SetWindowPos. This involved intricate code and external dependencies to ensure that a particular form remained in the foreground at all times.

TopMost property

Fortunately, VB.NET simplifies this process by introducing the TopMost property, which can be set to TRUE for a Form object. When this property is enabled, the form becomes a topmost window, superseding all other forms even if it is not currently the active or foreground form.

Dim frm As New Form2 frm.TopMost = True frm.Show()

The TopMost property proves particularly useful when you want to create a form that demands constant attention or needs to be prominently displayed within your application. For example, a MessageBox window is typically designed to grab the user's attention and remain visible until the user takes appropriate action. By setting the TopMost property of such a form to TRUE, you ensure its consistent visibility, regardless of other forms or windows that may be open.

Full Source VB.NET
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm As New Form2 frm.TopMost = True frm.Show() End Sub End Class

Using this TopMost property, you can easily create forms that persistently remain in the foreground, enhancing the user experience and drawing attention to critical information or important interactions. This streamlined approach in VB.NET simplifies the development process and reduces the need for complex Win32API calls, enabling developers to achieve the desired behavior more efficiently.


The Form class in VB.NET empowers developers to manage different types of windows within their applications. With the introduction of the TopMost property, controlling the visibility and behavior of a form to stay on top has become more straightforward and more closely integrated with the core features of the language, leading to improved productivity and code clarity.