Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Проклятье! Ещё один глюк с MS-компонентами. Да ... Добавлено: 30.09.02 18:55  

Автор вопроса:  Comanche

Обнаружил очередной глюк. На этот раз - у компоненты TABCTL32.OCX, т.е. Microsoft Tabbed Dialog Control 6.0 (SP4), точная версия - 6.00.8804.

Есть такой код:

For i = 0 To SSTab1.Tabs - 1
    If SSTab1.TabCaption(i) <> "Общие" Then
        SSTab1.TabVisible(i) = False
    Else
        SSTab1.TabVisible(i) = True
    End If
Next i

Смысл его понятен: оставить видимой только одну вкладку - ту, у которой на ярлыке значится "Общие".

Так вот, на определённом i строка SSTab1.TabVisible(i) = False вызывает... угадайте что? В жизни не догадаетесь! Событие SSTab1_Click !!! В котором, кстати, выполняется некоторый код.

Вообще-то, SSTab1_Click можно вызвать только путём SSTab1.Tab = N, где N - номер вкладки, по которой нужно "щёлкнуть". Ну или, на худой конец, генерацией события типа Call SSTab1_Click(m). Ну и плюс щелчком мыши, разумеется. Но уж никак не установкой свойства Visible!

Выход-то я нашёл, но такой, что самому противно:

SSTab1.Visible = False  ' <<< добавил
For i = 0 To SSTab1.Tabs - 1
    If SSTab1.TabCaption(i) <> "Общие" Then
        SSTab1.TabVisible(i) = False  ' <<< вот тут происходит генерация клика
    Else
        SSTab1.TabVisible(i) = True
    End If
Next i
SSTab1.Visible = True  ' <<< добавил

а в событие SSTab1_Click (в котором раньше только был "некоторый" код) - дописал IF:

If SSTab1.Visible Then
    ' выполнение "некоторого кода"
End If
=========================================================================================

На этот раз я не просто сообщаю о "гра[sensored]х", а ищу собратьев по этим гра[sensored]м, в смысле по несчастью. Кто-нибудь может прокомментировать этот топик? равно как и предыдущий мой топик в этом же форуме (про глюк у ImageCombo, от 29.09.02)? Почему, начиная с некоторого момента, "нестандартные" контролы начинают глючить? Чего ещё можно ожидать в этом же духе? Я кое-как, конечно, выкрутился (по другому не назовёшь) с этими двумя контролами: "дырку" с ImageCombo залатал с помощью DoEvents, а "дырку" с SSTab - с помощью IF-а. Но вот допишу проект, пущу его в работу, а там как начнётся "продолжение фильма"! По-моему, этого вполне можно ожидать... По крайне мере, ВСЕ результаты тестирования написанного на сегодняшний день кода я решил считать недействительными, и начал тестировать всё заново, - а это задачка не из лёгких, сами понимаете.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Иван



Администратор

ICQ: 147688925 

Вопросов: 24
Ответов: 708
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 30.09.02 23:09
Не думаю что это глюк. Дело в том, что Click - это не клик мышою, а переключение вкладки. Попробуй перемещаться по вкладкам с помощью клавиатуры. Впрочем это как подумать... может и глюк, хотя и документированный.

Ответить

Номер ответа: 2
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #2 Добавлено: 01.10.02 01:55

Это и ежу понятно, что можно ещё и с клавы. И что Click - это переключение состояния контрола (изменение номера выбранной вкладки).

 

Вы где-нибудь видели, чтобы изменение свойства Visible переключало состояние контрола?! Т.е. меняло бы его Text, или Caption, или ListIndex, или SelectedItem и т.д.???!!!

 

И, наконец, где это он "документированный", хотел бы я знать?!

 

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам