Windows контроль формы исчезает во время выполнения (VB. NET) - PullRequest
0 голосов
/ 28 мая 2020

Я создал приложение Data Extractor в Visual Studio 2019 (VB. NET), которое должно извлекать данные из файла Access DB (обновление другим программным обеспечением) и преобразовывать его в текстовый файл каждые 2 секунды. Между тем он также обновляет многие элементы управления формы, такие как элемент управления диаграммой, индикатор выполнения и текстовое поле. Я опубликовал свое приложение на. NET Framework 4.7.2

Проблема: Приложение работает Полностью нормально в течение почти часа после запуска, но его контроль начал исчезают и в конечном итоге исчезают через некоторое время (как вы можете видеть на изображении). В конце концов он перестал отвечать, и мне пришлось закрыть и снова открыть.

enter image description here

По иронии судьбы, когда я проверил свой текстовый файл во время приложения в состоянии зависания, он постоянно обновлялся данными из файла БД. Я подозревал, что код выполняет свои обязанности, но форма Windows со временем теряет эстетику. Почему это происходит?

какая могла быть возможная причина появления? (Я попытался очистить решение и построил его снова, но безуспешно)

Я использовал CircularPeogressBar из https://github.com/RamsinChaabian/CircleProgressBar

Ниже приведен код из окна дизайнера

'CircularProgressBar1
    '
    Me.CircularProgressBar1.AccessibleRole = System.Windows.Forms.AccessibleRole.None
    Me.CircularProgressBar1.AnimationFunction = WinFormAnimation.KnownAnimationFunctions.Liner
    Me.CircularProgressBar1.AnimationSpeed = 0
    Me.CircularProgressBar1.BackColor = System.Drawing.Color.Transparent
    Me.CircularProgressBar1.Font = New System.Drawing.Font("Microsoft Sans Serif", 72.0!, System.Drawing.FontStyle.Bold)
    Me.CircularProgressBar1.ForeColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer))
    Me.CircularProgressBar1.InnerColor = System.Drawing.Color.Transparent
    Me.CircularProgressBar1.InnerMargin = 2
    Me.CircularProgressBar1.InnerWidth = -1
    Me.CircularProgressBar1.Location = New System.Drawing.Point(313, 132)
    Me.CircularProgressBar1.MarqueeAnimationSpeed = 0
    Me.CircularProgressBar1.Maximum = 60
    Me.CircularProgressBar1.Name = "CircularProgressBar1"
    Me.CircularProgressBar1.OuterColor = System.Drawing.Color.FromArgb(CType(CType(87, Byte), Integer), CType(CType(87, Byte), Integer), CType(CType(87, Byte), Integer))
    Me.CircularProgressBar1.OuterMargin = -25
    Me.CircularProgressBar1.OuterWidth = 25
    Me.CircularProgressBar1.ProgressColor = System.Drawing.Color.Cyan
    Me.CircularProgressBar1.ProgressWidth = 20
    Me.CircularProgressBar1.SecondaryFont = New System.Drawing.Font("Microsoft Sans Serif", 36.0!)
    Me.CircularProgressBar1.Size = New System.Drawing.Size(156, 156)
    Me.CircularProgressBar1.StartAngle = -90
    Me.CircularProgressBar1.Step = 1
    Me.CircularProgressBar1.SubscriptColor = System.Drawing.Color.Transparent
    Me.CircularProgressBar1.SubscriptMargin = New System.Windows.Forms.Padding(10, -35, 0, 0)
    Me.CircularProgressBar1.SubscriptText = ""
    Me.CircularProgressBar1.SuperscriptColor = System.Drawing.Color.Transparent
    Me.CircularProgressBar1.SuperscriptMargin = New System.Windows.Forms.Padding(10, 35, 0, 0)
    Me.CircularProgressBar1.SuperscriptText = ""
    Me.CircularProgressBar1.TabIndex = 24
    Me.CircularProgressBar1.TextMargin = New System.Windows.Forms.Padding(8, 8, 0, 0)

- Нужно ли кодировать весь элемент управления CircularProgressBar, чтобы избавиться от этой проблемы, или есть выход для решения этой проблемы?

- Если проблема заключается в правильном удалении, то как мы можем эффективно избавиться от них без утечки графических ресурсов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...