Как избежать Multipage_Change при Multipage_MouseDown

Программирование на Visual Basic for Applications
Natuzzi
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 26.04.2007 (Чт) 14:43
Откуда: Питер

Как избежать Multipage_Change при Multipage_MouseDown

Сообщение Natuzzi » 04.07.2007 (Ср) 15:15

Подскажите, пожалуйста, как сделать так, чтобы при обработке события Multipage_MouseDown при выполнении определенного условия не происходила обработка события Multipage_Change? Т.е. чтобы не было перехода на другую вкладку.

Natuzzi
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 26.04.2007 (Чт) 14:43
Откуда: Питер

Сообщение Natuzzi » 09.07.2007 (Пн) 10:01

:( А в ответ - тишина.

А может я неясно сформулировала вопрос?

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 09.07.2007 (Пн) 10:59

Стандартный вариант - завести глобальную переменную и проверять ее значение во втором событии.
подписи нет и не будет

Natuzzi
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 26.04.2007 (Чт) 14:43
Откуда: Питер

Сообщение Natuzzi » 09.07.2007 (Пн) 15:36

Хм... что-то я не очень понимаю как это сделать - каким именно образом прерывается выполнение события. :?:

Например, я пытаюсь прервать Mousedown по нажатию клавиши в выползающем MsgBox (см. файл). Но обработчик переходит в MouseChange и все равно перелистывает вкладку.
При этом заголовок вкладки остается прежним (например, Page1). А контент меняется на содержание той вкладки на которую кликаешь перед прерыванием.

Как мне сделать чтобы при отказе от выполнения события перехода на другую вкладку и заголовок, и содержимое оставались прежними? :?:
Вложения
Multipage.xls
(29 Кб) Скачиваний: 90

AndreyV
Начинающий
Начинающий
 
Сообщения: 24
Зарегистрирован: 13.02.2004 (Пт) 16:16

Сообщение AndreyV » 11.07.2007 (Ср) 14:41

изменение MultiPage.Value не поможет, так как он ни на что не влияет кроме как на прорисовку кнопочек у закладок
нужно менять свойство MultiPage.SelectedItem а он только для чтения
поэтому наверное никак

bi-lya
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 07.08.2006 (Пн) 15:36

Сообщение bi-lya » 11.07.2007 (Ср) 16:42

Может так?
Код: Выделить всё
Dim a As Integer
Private Sub MultiPage1_Click(ByVal Index As Long)

Reply = MsgBox("Переходим?", 36, "Нечто")

If Reply = 7 Then MultiPage1.Value = a

a = MultiPage1.Value

End Sub

Private Sub UserForm_Initialize()

a = MultiPage1.Value

End Sub

Natuzzi
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 26.04.2007 (Чт) 14:43
Откуда: Питер

Сообщение Natuzzi » 12.07.2007 (Чт) 9:39

2 bi-lya
А что означает "36" в качестве значения аргумента buttons у функции MsgBox? Почему-то в Help'е нет такого значения аргумента.

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 12.07.2007 (Чт) 9:55

Natuzzi писал(а):А что означает "36" в качестве значения аргумента buttons у функции MsgBox? Почему-то в Help'е нет такого значения аргумента.


vbYesNo+vbQuestion
подписи нет и не будет

bi-lya
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 07.08.2006 (Пн) 15:36

Сообщение bi-lya » 12.07.2007 (Чт) 12:24

Смотрите "MsgBox Constants" в справке VBA.
vbYesNo - 4
vbQuestion - 32
4 +32 = 36

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.07.2007 (Чт) 12:53

bi-lya писал(а):Смотрите "MsgBox Constants" в справке VBA.

Всё наоборот.
Это не мы должны смотреть в справке "MsgBox Constants", это ты должен писать в коде имена констант вместо нечитаемых бессмысленных чисел.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

bi-lya
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 07.08.2006 (Пн) 15:36

Сообщение bi-lya » 12.07.2007 (Чт) 13:48

:study:
Ну не судите строго. Не я это выдумал - значит кому-то это надо.
Вдруг пригодится для общего развития
:wink:

Natuzzi
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 26.04.2007 (Чт) 14:43
Откуда: Питер

Сообщение Natuzzi » 13.07.2007 (Пт) 12:36

2 bi-lya

Благодарю за помощь :)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 113

    TopList