Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
badmoon
0 / 0 / 0
Регистрация: 27.12.2016
Сообщений: 2
#1

Отсутствует программно созданная форма в списке Application.Openforms - Visual Basic .NET/.NET 4.x

27.12.2016, 15:36. Просмотров 211. Ответов 2
Метки нет (Все метки)

Здравствуйте!

В процессе выполнения программы на VB.Net создаю форму со свойством ShowItTaskBar = False. Затем пытаюсь заблокировать ее повторное создание поиском ее в Application.Openforms. А ее там нет!
Кто-нибудь сталкивался с подобным? На одном иностранном форуме обнаружил схожую тему, но результата исправления такого косяка не нашел.

Добавлено через 3 часа 8 минут
Если интересно, решил проблему костылями: добавил boolean переменную, проверяя которую программа выходит из процедуры создания формы. Она же сбрасывается, когда это необходимо, после чего процедура создания формы срабатывает.
Однако это кривое исполнение, поэтому оно приемлемо для маленького проекта или проекта с небольшим количеством подобных ситуаций. Если Вы знаете более универсальное решение, напишите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2016, 15:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос .NET 4.x Отсутствует программно созданная форма в списке Application.Openforms (Visual Basic .NET):

Как перевести Console Application в Windows Application
Imports System.Console Module Module1 Sub Main() Dim S() As...

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

Application.OpenForms сокращение
Дорогие программисты нужна помощь в сокращение и оптимизации кода есть такое...

Application.OpenForms и ООП
Буквально на этой неделе узнал про такую конструкцию, которая позволяет...

Как добавить форму в коллекцию Application.OpenForms?
Друзья добрый день. Использую такой метод: private void button1_Click(object...

Программно созданная таблица в datagridview
И так я создал программно таблицу в datagridview теперь вопрос как перевести...

2
MrCrown
766 / 752 / 176
Регистрация: 03.10.2012
Сообщений: 768
28.12.2016, 12:41 #2
Цитата Сообщение от badmoon Посмотреть сообщение
А ее там нет!
Возможно, вы не присвоили новой форме имя

vb.net
1
2
3
4
5
6
7
8
Dim f As New Form
        f.Name = "NewForm"
        f.ShowInTaskbar = False
        f.Show()
        MsgBox(Application.OpenForms.Count)
        For Each frm As Form In Application.OpenForms
            MsgBox(frm.Name)
        Next
1
badmoon
0 / 0 / 0
Регистрация: 27.12.2016
Сообщений: 2
28.12.2016, 15:30  [ТС] #3
Спасибо!
Невероятно, что такая ерунда оказалась ответом. Я практически никогда не называю динамические объекты, особенно формы, и все прекрасно работает. В моей программе есть еще 2 формы, без имени, но в таксбаре они видны. И в списке форм они тоже есть.

Добавлено через 2 часа 21 минуту
Похоже, я поспешил с выводами.
Создаю форму следующей строкой:

vb.net
1
Dim myForm As New Form With {.Name = "myForm", .TopMost = True, .WindowState = FormWindowState.Normal, .StartPosition = FormStartPosition.Manual, .Visible = True, .FormBorderStyle = Windows.Forms.FormBorderStyle.None, .MinimizeBox = False, .MaximizeBox = False, .ShowInTaskbar = False, .BackColor = Color.Yellow}
Ее нет в Application.OpenForms.

Добавлено через 7 минут
Разобрался. Почему-то весь этот набор свойств конфликтует с .Visible = True. Убрал - форма появилась.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2016, 15:30
Привет! Вот еще темы с решениями:

Не работает кнопка, созданная программно
Всем привет. Недавно начал изучать javascript. Работаю c API Яндекс Карт. Они...

не открывается созданная форма=(
Пишу небольшую программку на диплом, в ней много разных форм. обычно открываю...

Созданная форма не активна
В созданной 2 форме операции не активны, кнопки и др. не работают. Delphi XE,...

Динамически созданная форма не функционирует
Динамически через AJAX создается вот такой вот div: <div class="link_group"...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru