Centering A Form - Using Available Desktop Space | CodeGuru

Centering A Form – Using Available Desktop Space

Almost everyone who has programmed in VB for even a short period of time, has had to display a form centered on a screen. A variety of ways exist for doing so, but most ignore some aspects of the environment such as the taskbar, the office launchbar, and even the app’s own titlebar. The following […]

Written By
CodeGuru Staff
CodeGuru Staff
Jan 28, 2004
1 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

Almost everyone who has programmed in VB for even a short period of time, has had to display a form centered on a screen.

A variety of ways exist for doing so, but most ignore some aspects of the environment such as the taskbar, the office launchbar, and even the app’s own titlebar.

The following function takes all of this into account to center a form perfectly with the client area.

private Declare Function GetSystemMetrics Lib "user32" _
    (byval nIndex as Long) as Long
private Declare Function GetWindowLong Lib "user32" alias _
    "GetWindowLongA" (byval hwnd as Long, _
    byval nIndex as Long) as Long

private Const SM_CXFULLSCREEN = 16
private Const SM_CYFULLSCREEN = 17
private Const SM_CYCAPTION = 4

public Sub CenterForm(Frm as Form)

    Dim Left, Top as Integer

    Left = Screen.TwipsPerPixelX * _
      GetSystemMetrics(SM_CXFULLSCREEN) / 2 - Frm.Width / 2
    Top = Screen.TwipsPerPixelY * _
      (GetSystemMetrics(SM_CYFULLSCREEN) + _
       GetSystemMetrics(SM_CYCAPTION)) / 2 - Frm.Height / 2

    Frm.Move Left, Top

End Sub
CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.