
Formulário não retangular em execução
Este é o primeiro post de uma nova sessão denominada “Quick Dev”. O objetivo desta sessão é explorar rapidamente algumas abordagens de desenvolvimento simples, porém, úteis.
Se você está se perguntando neste momento: porque estamos abordando questões de desenvolvimento em um blog de arquitetura? Eu recomendo ler o texto de John Davies (não errei na escrita, é Davies mesmo) no livro “97 Things Every Software Architect Should Know”, entitulado como “Architects Must Be Hands On”, onde ele brilhantemente afirma: “Without a good understanding of the full range of technology, an architect is little more than a project manager”.
Sem mais explicações, vamos ao que interessa. Você sabia que é possível criar formulários não retangulares em uma aplicação windows forms? Pois é, você pode criar um formulário no formato que desejar. Veja a seguir como o código é simples e ao lado o resultado. Note que alterei a cor de fundo do formulário e que acrescentei um botão para fechar, uma vez que os controles padrão do formulário não aparecem neste formato.
Public Class NonRetangularForm
Private Sub NonRetangularForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Cria-se um objeto path
Dim myPath As New System.Drawing.Drawing2D.GraphicsPath
'Adiciona-se o formato desejado ao Path. Este formato pode ser um polígono,
'formato de pizza, elipse, e diversos outros formatos interessantes.
myPath.AddEllipse(0, 0, Me.Width, Me.Height)
'Cria-se uma região com base no formato criado
Dim myRegion As New Region(myPath)
'Associa-se a região ao formulário, fazendo com que ele
'assuma a região defina no objeto no seu carregamento.
Me.Region = myRegion
End Sub
Private Sub btnFechar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles brnFechar.Click
Me.Close()
End Sub
End Class