- Код: Выделить всё
Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.BackColor = Color.Blue
Dim gp As New System.Drawing.Drawing2D.GraphicsPath
Dim hwnd As New IntPtr
Dim fntfml As FontFamily = New FontFamily("Times New Roman")
Dim fntsz As Integer = 40
Dim fntstl As FontStyle = FontStyle.Bold
Dim fnt As Font = New Font(fntfml, fntsz, fntstl)
hwnd = MyBase.Handle
Dim g As Graphics = Graphics.FromHwnd(hwnd)
gp.AddString(sShadowingStatus, fntfml, fntstl, fntsz, Me.Location, StringFormat.GenericDefault)
MyBase.Region = New Region(gp)
MyBase.Size = g.MeasureString(sShadowingStatus, fnt).ToSize
gp.Dispose()
MyBase.OnPaintBackground(e)
End Sub
Очень удобно, мне на форме кроме текста ничего не нужно, да и выглядит красиво. Но вопрос стал в перемещении этой формы. Перемещаю я форму таким кодом:
- Код: Выделить всё
Const WM_NCHITTEST As Integer = &H84
Const HTCAPTION As Integer = &H2
Protected Overrides Sub WndProc(ByRef m As Message)
If (m.Msg = WM_NCHITTEST) Then
m.Result = IntPtr.op_Explicit(HTCAPTION)
Return
End If
MyBase.WndProc(m)
End Sub
Так вот, форма хорошо отображается, пока ее не трогаешь. Когда я ее хватаю мышкой и переношу, она переносится, но при отпускании сразу пропадает и больше не появляется. В чем может быть дело?