2016-02-03 5 views
0

Может ли кто-нибудь объяснить мне, как я могу получить это на самом деле? В настоящее время это дает мне ошибки в WithEvents - хотя упрощено это показывает форму, но я не знаю, что это на самом деле означает. Это инструмент, который я создаю, чтобы позволить пользователю лучше взаимодействовать с некоторыми другими моими кодами.Как обращаться с нажатием кнопки даже из .dll

Все, что мне нужно - это визуальные/мужественные формы, которые должны быть обычными, но затем код, который должен быть выполнен в моем приложении (который не имеет возможностей визуального редактирования).

Является ли это случаем, когда мне нужно использовать сопряжение/частичные классы/наследование, или это может быть легко достигнуто с помощью незначительной настройки на то, что у меня есть?

(форма создана в Visual Studio конструктор форм, а затем изменен на библиотеки классов. Кода прикладной программы, написанной в Autodesk Inventor «правило» среды)

Спасибо!

Код приложения:

AddReference "C:\Users\Documents\Visual Studio 2013\Projects\WindowsApplication1\WindowsApplication1\bin\Release\SectionSymToolBox.dll" 

Imports System.Windows.Forms 

Public Class SectionSymRule 
'Public dlg As New System.Windows.Forms.For 
Public Shared ToolBox As New SectionSymToolBox.SectionSymToolBox 

Dim WithEvents EClass As New EventClass 

Sub Main() 
    ToolBox.Show() 
End Sub 

End Class 

Код формы:

Public Class SectionSymToolBox 

Private Sub Main() 
End Sub 

Public Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
    'Swap Symbols 
End Sub 

Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    'Flip Symbol 
End Sub 

Public Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    'Flip Text 
End Sub 

Public Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click 
    '< 
End Sub 

Public Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 
'> 
End Sub 

End Class 
+0

* В настоящее время это дает мне ошибки относительно WithEvents * - какие ошибки? –

+0

К сожалению, я имел в виду, если попытаюсь использовать Ручки _____ в своем коде приложения, например: Sub Navigage_Left (отправитель As Object, e As EventArgs) Ручки ToolBox.Button4.Click Он дает ошибки; говорит, что для ручек требуется событие с событиями. Мой фон очень ограничен в ООП, поэтому я даже не уверен, что это правильное начало доступа к событиям. – MechMachineMan

+0

Пожалуйста, отредактируйте ваш вопрос и включите там сообщение об ошибке. Чтобы использовать 'Handles', ваша переменная (Button в этом случае) должна быть объявлена ​​с помощью ключевого слова' WithEvents'. Если вы не можете изменить способ объявления этой кнопки, вы можете использовать оператор «AddHandler» для подключения событий. –

ответ

0

Это то, что вы ищете?

AddHandler ToolBox.Button1.Click, AddressOf HandlerMethodHere 

Где HandlerMethod это метод, который имеет же подпись, как Button1.Click так, например:

Private Sub HandleButton1Click(sender As Object, e As EventArgs) 
'Code here 
End Sub 

Очевидно, что заменить Button1 с именем кнопки.

+0

Спасибо! Я чувствую, что это ближе; только теперь он говорит: Правила ошибки компиляции в Rule2, в ДЛЯ ЦИТАТЫ idw.idw Ошибки в строке 9: «SectionSymToolBox.SectionSymToolBox.Friend WithEvents Button1 Как System.Windows.Forms.Button» не доступен в этом контексте, потому что это «Друг». Куда это тянет друга? У меня в этом коде нет нигде. Если мне не хватает чего-то большего. – MechMachineMan

+0

Я решил это; Мне пришлось щелкнуть Form 1.Vb в обозревателе решений Visual Studio и изменить строки Друг WithEvents Button3 As System.Windows.Forms.Button To Public, а с вашей линией AddHandler он отлично работает. Это не закрытие/удаление формы должным образом, хотя, поэтому я думаю, что у меня есть больше работы, чтобы сделать там ... – MechMachineMan