Suunnilleen sama kysmys kun täällä:
http://www.xtremevbtalk.com/showthread.php?t=211192
Miten pystyn script controllilla nappaamaan esim onclick eventin napista, jonka olen luonut?
Moikka Quirzo!
Et mitenkään, mutta...
script.txt:
Sub Main()
Dim cmdStop
Set cmdStop = Form1.Controls.Add("VB.CommandButton","cmdStop",
With cmdStop
.Height = 100
.Top = (Form1.Height / 2) - (cmdStop.Height)
.Width = 300
.Left = (Form1.Width / 2) - (cmdStop.Width / 2)
.Caption = "Stop"
.Visible = True
End With
End Sub
Private Sub cmdStop_Click()
MsgBox " Toimii!!!"
End Sub
'moduuliin Global strCode, sc As New MSScriptControl.ScriptControl 'formiin 1 valmis nappi eli Command1 ja... Dim WithEvent cmdStop As VB.CommandButton Private Sub Form_Load() Open "Polku\script.txt" For Input As #1 Do While Not EOF(1) Line Input #1, strLineInput strCode = strCode & strLineInput & vbCrLf Loop Close #1 With sc .Language = "VBScript" .AddObject "Form1", Me .AllowUI = True .AddCode strCode .Run "Main" End With End sub Private Sub Form_Unload() sc.Reset Set sc = Nothing End Sub Private Sub cmdStop_Click() sc.AddCode "cmdStop_Click" End Sub Private Sub Command1_Click() sc.AddCode "cmdStop_Click" End Sub
Kun klikkaat Stop nappia niin huomaat, että ¤#"!¤#@£$!!!
klikkaa Command1 nappia ja huomaa ero...
Moikka taas Quirzo!
Korjausta edelliseen...että kyllä se sittenkin tavallaan on mahdollista
HUOM! VBA-versio:
script.txt:
Sub Main()
Set cmdStop = UserForm1.Controls.Add("Forms.CommandButton.1", "cmdStop",True)
With cmdStop
.Height = 20
.Top = (UserForm1.Height / 2) - .Height
.Width = 50
.Left = (UserForm1.Width / 2) - (.Width / 2)
.Visible = True
.Caption = "Nappi"
End With
End Sub
Private Sub cmdStop_OnClick()
MsgBox " Toimii!!!"
End Sub
Public sc As New MSScriptControl.ScriptControl Public WithEvents cmdStop As CommandButton Private Sub UserForm_Activate() Open "C:\script.txt" For Input As #1 Do While Not EOF(1) Line Input #1, strLineInput strCode = strCode & strLineInput & vbCrLf Loop Close #1 With sc .Language = "VBScript" .AddObject "UserForm1", Me, True .AllowUI = True .AddCode strCode .Run "Main" End With End Sub Private Sub UserForm_Initialize() SendKeys "{TAB}" End Sub Private Sub UserForm_Terminate() sc.Reset Set sc = Nothing End Sub Private Sub cmdStop_Click() sc.AddCode "cmdStop_OnClick" End Sub
Kiitos paljon tuon tyyppistä kokeilinkin.
Yksi kysymys, miten voin Controls.Add -koodilla lisätä command buttonin, jonka nimessä on index. Tarkoitan siis että command1(2), command1(3) jne.
Tällä tavalla sen saisi onnistumaan.
Moikka taas Quirzo!
Tsekkaa ekaks tää nomic'in vinkki ja tsekkaa sit sen linkin takaa se BadSource'n juttu!
Aihe on jo aika vanha, joten et voi enää vastata siihen.