Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Создание обработчика события программными ср-ми Добавлено: 30.04.07 09:20  

Автор вопроса:  Сергей
Здравствуйте!
У меня несколько строчек кода, чтобы добавлять новый лист в книгу Excel и вставлять туда ListBox, но я не могу представить как задать этому ListBox обработчик событий (например просто на щелчок мыши).
Заранее спасибо!!!

Ответить

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

Номер ответа: 1
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #1
Добавлено: 30.04.07 10:41
Private Sub List1_Click()

End Sub
а так не покатит?

Ответить

Номер ответа: 2
Автор ответа:
 Сергей



Вопросов: 1
Ответов: 4
 Профиль | | #2 Добавлено: 30.04.07 10:57
Ну... дак а как это написать для пока несуществующего контрола? Он ведь появится при выполнении программы)))

Ответить

Номер ответа: 3
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #3
Добавлено: 30.04.07 11:12
Сергей, смотря как ты его добавляешь

Ответить

Номер ответа: 4
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #4 Добавлено: 30.04.07 11:18
-АлександР-, а есть несколько способов его добавить?

Сергей
RTFM.
Visual Basic for Applications Extensibility X.XX

Ответить

Номер ответа: 5
Автор ответа:
 Сергей



Вопросов: 1
Ответов: 4
 Профиль | | #5 Добавлено: 30.04.07 11:42
Добавляю его так
 
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Link:=False, DisplayAsIcon:=False, Left:=0, Top:=100.75, Width:=72, Height:=24).Select

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

Ответить

Номер ответа: 6
Автор ответа:
 Сергей



Вопросов: 1
Ответов: 4
 Профиль | | #6 Добавлено: 30.04.07 11:44
АлександрР
добавляю его так
  
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Link:=False, DisplayAsIcon:=False, Left:=0, Top:=100.75, Width:=72, Height:=24).Select

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

Ответить

Номер ответа: 7
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #7 Добавлено: 30.04.07 12:05
RTFM = Read the F*cking Manual.
Visual Basic for Applications Extensibility X.XX = то, что надо подключить в Project - References.

Ответить

Номер ответа: 8
Автор ответа:
 Сергей



Вопросов: 1
Ответов: 4
 Профиль | | #8 Добавлено: 30.04.07 12:21
Спасибо!
Но я хотел бы узнать, кто нибудь это вообще делал? Ведь речь идет об изменении кода во время его работы! Тут принципиальная вещь!

Ответить

Номер ответа: 9
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #9
Добавлено: 30.04.07 12:32
Я не знаю то, что хочет GSerg, но я в свое время это делал так:

где-то в коде формы:

    While numLab < Val(Text1)

        Set textWidt(numLab) = Me.Controls.Add("VB.TextBox", "lineWidth" & numLab, Me)

        With textWidt(numLab)
            .Visible = True
            .Left = Text1.Left
            .Width = 350
            .Top = topLab
            .FontSize = 14
            .Text = 1
        End With
        
        topLab = topLab + 600
        myTxtBox(numLab).MkEqu = textWidt(numLab)
        numLab = numLab + 1
    Wend


и в модуле класса:

Option Explicit

Private WithEvents DemoTxtBox As TextBox

Property Let MkEqu(DemoTxtBox2 As Object)

    Set DemoTxtBox = DemoTxtBox2
    
End Property

Sub DemoTxtBox_Change()

    Form1.Caption = 0
    
End Sub
Получается врапперинг...

Ведь речь идет об изменении кода во время его работы! Тут принципиальная вещь!
ни о каких изменениях кода во время его работы здесь даже близко и речи нет - просто используем скромные возможности ООП в вб6/вба/

Ответить

Номер ответа: 10
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #10 Добавлено: 30.04.07 13:15
Сергей
Это не просто "кто-то делал", это банально и вообще не стоит даже упоминания, тем более восторгов каких-то. Принципально называется...

-АлександР-
Если ты этого не делал, это ещё ничего не значит.
Попробуй своим способом обеспечить поддержку любого числа добавляемых контролов.

Ответить

Номер ответа: 11
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #11
Добавлено: 30.04.07 13:51
GSerg,
попробовал: http://sham.clan.su/publ/8-1-0-5

там есть пример для скачивания, внизу страницы ссылка, можеь сразу его скачать и посмотреть

пример очень нагдный и в том-то и дело, что количество добавляемых контролов может быть любым

Если ты этого не делал, это ещё ничего не значит.
согласен

Я не знаю то, что хочет GSerg,
теперь знаю: просто он указал на библиотеку, без которой на VBA мой пример просто не будет работать))))

Сергей
за более подробной информацией http://sham.clan.su/publ/8-1-0-5 там все с комментариями, будут вопрос спрашивай

Ответить

Страница: 1 |

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



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