Страница: 1 |
Страница: 1 |
Вопрос: Вопрос по ListView в VB
Добавлено: 05.07.07 11:29
Автор вопроса: killogin
У меня проблемка небольшая. Есть файл, из которого надо загрузить информацию в объект ListView, но форма с этим объектом должна быть невидима до определенного момента, а как только я начинаю загружать файл в объект ListView, форма появляется сама. Кто нибудь может подсказать решение?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #1
Добавлено: 05.07.07 12:56
Загружаеш ты скорей всего в сабе FormLoad, а все действия с контролами тут автоматом показывает форму. Выход:
1) Использовать свойство Visible у формы
2) Использовать Sub_main при этом не забыть поставить в свойствах проекта старт с этой процедуры. Процедура описываться должна в модуле. (Рекомендую)
ПС надеюсь я тебя правильно понял
Номер ответа: 2
Автор ответа:
killogin
Вопросов: 5
Ответов: 23
Профиль | | #2
Добавлено: 05.07.07 13:05
Не совсем. Я так пробовал. Дело в том, что форма подгружается и остается невидимой, тут все нормально. А вот как только я пытаюся заполнить таблицу этой форма, она сразу становится автоматом видимой, вне зависимости от свойства Visible.
Номер ответа: 3
Автор ответа:
art
Вопросов: 45
Ответов: 119
Профиль | | #3
Добавлено: 05.07.07 21:30
может код приведешь?
Номер ответа: 4
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #4
Добавлено: 05.07.07 21:46
Cкорее всего это MDI-child.
Есть у него такое позорное поведение.
Но все решаемо.
Номер ответа: 5
Автор ответа:
killogin
Вопросов: 5
Ответов: 23
Профиль | | #5
Добавлено: 06.07.07 05:55
Точно это он самый. А можно поподробнее про решение.
А кода как такового нету, просто есть проблемка вот эта.
Номер ответа: 6
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #6
Добавлено: 06.07.07 14:46
Понял проблему и вроде нашол выходы:
1) Нужно перетащить работу с листом в процедуру Activate формы и там либо добавить Visible=False либо вызвать апи Call SetWindowPos(hwnd, 0&, 0&, 0&, 0&, 0&, &H97). НО выход неприемлим!!!
2) Создать процедуру паблик из которой будет происходить всё и прописать там тоже самое что в пункте 1. Вызов формы из других форм и т.п. будет через эту процедуру.
У меня получилось...
Номер ответа: 7
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #7
Добавлено: 07.07.07 22:44
Dim hwcln As Long
hwcln = FindWindowEx(MDIForm1.hwnd, 0, "MDICLIENT", ""
SendMessage hwcln, WM_SETREDRAW, 0, 0
Form1.ListView1.ListItems.Add , , "qwerty"
'...
'...
SendMessage hwcln, WM_SETREDRAW, 1, 0
Form1.Visible = False
Номер ответа: 8
Автор ответа:
killogin
Вопросов: 5
Ответов: 23
Профиль | | #8
Добавлено: 09.07.07 06:22
ОК, всем спасибо, вроде чета получилось