Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ListView - проблема Microsoft или..?  (Прочитано 6118 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Daniloff
Помогающий

ru
Offline Offline

« : 07-04-2010 07:39 » 

Столкнулся с этой проюлемой в Word VBA, поэтому пишу тут. Но, думается, это в любом языке актуально!
Суть проблемы: создается ListView в юзерформе, переключается в режим report, включаются чекбоксы.
Код:
Private Sub UserForm_Initialize()
    With ListView1
        .ColumnHeaders.Add Text:="Столбец 1"
        .View = lvwReport
        .Checkboxes = True
        .ListItems.Add Text:="Blackberry"
    End With
End Sub
Всё хорошо!
Далее по клику прячем этот контрол:
Код:
Private Sub CommandButton1_Click()
    ListView1.Visible = False
End Sub
- опять ничего неожиданного. Второй кнопкой возвращаем контрол, заодно добавив элемент:
Код:
Private Sub CommandButton2_Click()
    ListView1.Visible = True
    ListView1.ListItems.Add Text:="Strawberry"
End Sub
Опаньки! У нового элемента есть чекбокс, а у старого - нету!
Если нажать на обе кнопки еще раз, у нас будут два элемента без чекбоксов и один - с ним.
А теперь, собственно, вопрос: как сделать, чтобы чекбоксы отображались после hide?

UPD: Наловчился прятать его за границы юзерформы (не скрывая). Видимо, это единственное решение...  А черт его знает...
« Последнее редактирование: 14-04-2010 05:41 от Sel » Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #1 : 07-04-2010 12:19 » 

в других языках все нормально (проверили на C#), да и в VB такого не наблюдалось
видимо это глюк самого VBA

Как вариант решения проблемы - пройтись по всей коллекции ListItems и что-нибудь сделать со свойством Checked
Записан

I Have Nine Lives You Have One Only
THINK!
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines