powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подрагивание родительской формы при закрытии модальной
6 сообщений из 6, страница 1 из 1
Подрагивание родительской формы при закрытии модальной
    #38904648
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну т.е. общий принцип такой.

Код: vbnet
1.
2.
3.
4.
5.
6.
'открытие из основной
    Dim Form2 As New frm2
    Form2.ShowDialog(Me)

'Закрытие frm2 из-под себя:
  Me.Close() 'ну или Me.Dispose() -как правило добавляю в Me.FormClosed, иногда вызываю сразу



При закрытии Form2 основная Form1 как правило подмигивает всем своим содержанием. Не всегда, от чего зависит хз, как правило при наличии каких-то других не относящихся к делу окон под ней, возможно когда Form1 достаточно насыщена всякими элементами, на чистом рабочем столе обычно нет.

Нет какого-то общего принципа на это повлиять? Не критично конечно, но и не файн для восприятия, в классике (Win32, VB6) такого эффекта в общем случае нет.
...
Рейтинг: 0 / 0
Подрагивание родительской формы при закрытии модальной
    #38904651
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще ощущение, что подрагивание происходит за счет вылезания (на долю секунды) других окон поверх Form1-имею ввиду окна, не относящиеся к данной программе и находящиеся снизу Form1.
...
Рейтинг: 0 / 0
Подрагивание родительской формы при закрытии модальной
    #38904672
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал поискать по словам flickering/blimking.
Один из советов, типа не делать "диалогу" Me.Dispose() из-под себя. Проверил, не бликует.
Но при этом обязательно делать это Dispose из-под родителя (то что обязательно надо делать в большинстве случаев - согласен).
Интересно как и в какой момент? Если у меня "as New frm2"-и я об этом сразу забыл, под каждый диалог переменные делать не очень хочется.
И потом я иногда запрещаю "закрытие крестиком" через cancel в FormClosing:
Код: vbnet
1.
If e.CloseReason = CloseReason.UserClosing Then e.Cancel = True


и тогда .Close() вообще не работает и остается .Dispose().
...
Рейтинг: 0 / 0
Подрагивание родительской формы при закрытии модальной
    #38904718
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде как довел до ума.
1) Dispose() надо делать из вызывающей формы а не из-под себя (ну или Using что так понимаю делает Dispose() автоматом).
2) Закрывать только через Close(), при необх. извращаться с переменной (при запрете крестика).

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Public Class Form1

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    'вариант #1
    'Dim Form2 As New frm2
    'Form2.ShowDialog(Me)
    'Form2.Dispose()

    'вариант #2
    Using Form2 As New frm2
      Form2.ShowDialog(Me)
    End Using
  End Sub
End Class

Public Class frm2

  Dim DoNotCloseMe As Boolean = True 'не закрывать крестиком или по Alt+F4 если так надо

  Private Sub ButtonCloseMe_Click(sender As Object, e As EventArgs) Handles ButtonCloseMe.Click
    DoNotCloseMe = False
    Me.Close()
  End Sub

  Private Sub frm2_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    'запрет закрытия через крестик, Alt+F4 и т.п. (но при этом Me.Close() также не работает)
    If DoNotCloseMe AndAlso e.CloseReason = CloseReason.UserClosing Then e.Cancel = True
  End Sub
End Class
...
Рейтинг: 0 / 0
Подрагивание родительской формы при закрытии модальной
    #38904776
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Дмитрий77,

Вы забыли написать - "Спасибо всем участникам обсуждения!"
...
Рейтинг: 0 / 0
Подрагивание родительской формы при закрытии модальной
    #38904806
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Подрагивание родительской формы при закрытии модальной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]