2016-09-12 3 views
0

Я пытаюсь создать форму, изменяемую по размеру, на основе перетаскивания пользовательской формы, нарисованной в углу панели. У меня есть код, который работает фантастически, если он нарисован в основной форме, но если я пытаюсь нарисовать его в углу панели, это не сработает, я не могу изменить размер формы. Код оптимизирован для рисования в форме, может ли кто-нибудь помочь мне и обновить его для работы в панели?Изменение размера формы из рисованной формы панели - VB.NET

Protected Overrides Sub WndProc(ByRef m As Message) 
    MyBase.WndProc(m) 
    If m.Msg = &H84 Then 
     Dim pos = Me.PointToClient(New System.Drawing.Point(m.LParam.ToInt32() And &HFFFF, m.LParam.ToInt32() >> 16)) 
     If pos.X >= Me.Width - grab AndAlso pos.Y >= Me.Height - grab Then 
      m.Result = New IntPtr(17) 
     End If 
    End If 
End Sub 
Private Const grab As Integer = 14 

Protected Overrides Sub OnPaint(e As PaintEventArgs) 
    MyBase.OnPaint(e) 
    Dim rc = New System.Drawing.Rectangle(Me.Width - grab, Me.Height - grab, grab, grab) 
    ControlPaint.DrawSizeGrip(e.Graphics, System.Drawing.Color.FromArgb(250, 250, 250), rc) 
End Sub 

Это выглядит следующим образом:

Here

+0

Требуется «атрибуция Google». Как правило, это хороший способ заставить автора этого кода помочь вам. –

+0

Я получил код от пользователя Hackforums.net, я не знаю, кто автор. Сожалею! – Nana

ответ

0

мне удалось решить эту проблему путем создания моего собственного пользовательского элемента управления с помощью GDI, чтобы нарисовать форму, как самостоятельный контроль, вместо картины его к уже встроенная система управления, такая панель.

Смежные вопросы