VB.net - Criando um Texto de Fundo num mdiForm

VB.net - Criando um Texto de Fundo num mdiForm

Problema: Se você precisa colocar um texto num Form container, você coloca um Label e Digita o seu texto e coloca a cor de fundo transparente, ok, mas quando você cria um Form filho neste container, o Label do Form Container fica na frente do Form filho e se você usar o método bringToFront no Form filho ele não fica na frente do Label.


Solução: Criar uma imagem de plano de fundo em tempo de execução. Veja o código exemplo a seguir:




Código: (Pode ser copiado)

Public Class mdiForm1
 
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Dim mTexto = "TEXTO CENTRALIZADO"
      Dim mFont = New System.Drawing.Font("Microsoft Sans Serif", 50, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel)
      Dim mBitmap As New System.Drawing.Bitmap(800, 400)
      With System.Drawing.Graphics.FromImage(mBitmap)
         Dim mSize As System.Drawing.SizeF = .MeasureString(mTexto, mFont)
         .DrawString(mTexto, mFont, System.Drawing.Brushes.White, (800 - mSize.Width) / 2, (400 - mSize.Height) / 2)
      End With
      Me.BackgroundImage = mBitmap
      Me.BackgroundImageLayout = Windows.Forms.ImageLayout.Zoom
   End Sub
   Private Sub mnuNovaJanela_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuNovaJanela.Click
      Dim mFrm As New Form2
      mFrm.MdiParent = Me
      mFrm.Show()
   End Sub
End Class

Postagens mais visitadas deste blog

F1GAME será "Acelera!"

F1Game_v5.8.4_u3d.11.4

F1Game v5.8.1 u3d1.11.0 - ajustes na versão Multiplayer