Перетаскивание / перемещение формы внутри формы приводит к тому, что она оставляет следы - PullRequest
0 голосов
/ 26 апреля 2020

Я создал «форму без полей» с именем Form2 с несколькими компонентами для придания ей некоторой функциональности и установил для ее родителя значение Form1 «, для которого задано фоновое изображение ». Я также установил DoubleBuffer=True в Form2 и Form1, чтобы избежать мерцания. Когда я перетаскиваю или двигаю Form2, он оставляет следы или меньше реагирует (как будто есть проблемы с графикой), пока я не оставлю мышь. Я также использовал Refresh(), Invalidate() и Update(), все то же самое. Есть ли решение этой проблемы?

РЕДАКТИРОВАТЬ 1: Посмотрите что-то это

Imports System.Windows.Forms
Public Class Form1
 Inherits Form
 Public Sub New()
  DoubleBuffer=True
 End Sub
End Class

Public Class Form2
 Inherits Form
 Public Sub New()
  DoubleBuffer=True
  TopLevel=False
 End Sub
End Class

Module MainApp
 Dim Form1 As New Form1
 Dim Form2 As New Form2
 Sub Main()
  With Form2
   Form1.Controls.Add(Form2)
   .FormBorderStyle = FormBorderStyle.None
   Form1.BackgroungImage = My.Resources.ImageResurce.IMG_1
   Form1.BackgroundImageLayout = ImageLayout.Stretch
   .Show
   Form1.Show
   AddHandler .MouseDown, AddressOf Drag
   AddHandler .MouseUp, AddressOf Drag
   AddHandler .MouseMove, AddressOf Drag
  End With
  Do
   Application.DoEvents()
  Loop
 End Sub
 Sub Drag(sender As Object, e As EventArgs)
  'Code to drag form2
 End Sub
End Module
...