All Forums
 Категория Visio
 Форум Вопросы и ответы
 как сделать обработчик события для шейпа?
Author Previous Topic Topic Next Topic  

Lena

11 Posts

Posted - 12/15/2004 :  18:22:20
Добрый день всем! Подскажите пожалуйста, как сделать так, чтобы при щелчке на шейп "прямоугольник" запускалась на выполнение процедура, написанная для этого шейпа, а при двойном щелчке также и оставалось изменение текста в шейпе.

Tumanov

Russia
1198 Posts

Posted - 12/15/2004 :  19:15:09
Был где-то похожий вопрос: "Как программно изменить цвет шейпа при выборе одинарным кликом?"
Вам надо либо действовать таким же образом, но в обработчике фильтровать шейпы, либо объявлять WithEvents не Window, а именно нужный шейп и использовать другое событие.

Ниже цитата для "Как программно изменить... "

--------------------------------------------------------------------------------
Можно ориентироваться на SelectionChanged, считая, что по одиночному клику шейп становится селектрованным.
Например, вот такой обработчик SelectionChanged отлично перекрашивает шейпы, если щелкать по разным шейпам. Надо только помнить, что если щелкнуть по селектированному шейпу, он перестает быть селектированным :)
Window.Selection(1).Cells("FillForegnd").Formula = Window.Selection(1).Cells("FillForegnd") + 1

------------------------------------
а можно полный код? что-то не идет.

--------------------------------------------------------------------------------
Dim WithEvents Win As Window
Sub ttt()
Set Win = ActiveWindow
End Sub
Private Sub Win_SelectionChanged(ByVal Window As IVWindow)
Window.Selection(1).Cells("FillForegnd").Formula = Window.Selection(1).Cells("FillForegnd") + 1
End Sub
Сначала один раз выполнить ttt(). Потом можно долго щелкать по неселектированным шейпам - они будут перекрашиваться.
Go to Top of Page

Lena

11 Posts

Posted - 12/16/2004 :  15:53:03
Ничего не получается, и возникает такой вопрос, если вместо этих шейпов ставить commandbutton, тогда при некотором количестве возникают глюки, когда двигаешь лист (они как бы двигаются вместе с листом), можно от этого как-нибудь избавиться.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)