【问题标题】:How to handle an button click even from a .dll如何处理来自 .dll 的按钮单击事件
【发布时间】:2016-05-12 17:41:46
【问题描述】:

有人可以指导我如何让它真正发挥作用吗?目前它给了我关于 WithEvents 的错误——虽然简化了它显示的形式——但我不知道这实际上意味着什么。这是我制作的一个工具箱,只是为了让用户更好地与我的其他一些代码进行交互。

我所需要的只是要自定义的表单视觉效果/胆量,然后是要在我的应用程序中完成的代码(它没有可视化编辑功能)。

这是我需要使用接口/部分类/继承的情况,还是只需对我所拥有的进行一些小的调整就可以轻松完成?

(在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

【问题讨论】:

  • 目前它给了我关于 WithEvents 的错误 - 哪些错误?
  • 对不起,我的意思是如果我尝试在我的应用程序代码中使用 Handles _____,例如: Sub Navigage_Left(sender As Object, e As EventArgs) Handles ToolBox.Button4.Click 它给出错误;说句柄需要一个 with 事件。我在 OOP 方面的背景非常有限,所以我什至不确定这是访问事件的正确开始。
  • 请编辑您的问题并在此处包含错误消息。为了使用Handles,您的变量(在本例中为Button)必须使用WithEvents 关键字声明。如果您无法更改按钮的声明方式,则可以使用AddHandler 语句连接事件。
  • 我需要对附加到表单代码的句柄做任何事情吗?

标签: vb.net forms dll autodesk-inventor


【解决方案1】:

这是你要找的吗?

AddHandler ToolBox.Button1.Click, AddressOf HandlerMethodHere

其中 HandlerMethod 是与 Button1 具有相同签名的方法。例如,单击:

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

显然,将 Button1 替换为按钮的名称。

【讨论】:

  • 谢谢!我觉得那更近了;除了现在它说:Rule2 中的规则编译错误,在第 9 行的 FOR QUOTE idw.idw 错误:'SectionSymToolBox.SectionSymToolBox.Friend WithEvents Button1 As System.Windows.Forms.Button' 在此上下文中不可访问,因为它是 'Friend '。它从哪里拉朋友?我的代码中没有这个。除非我错过了更多的东西。
  • 我解决了这个问题;我必须在 Visual Studio 的解决方案资源管理器中单击 Form1.Vb 并将 Friend WithEvents Button3 As System.Windows.Forms.Button 行更改为 Public,并且使用您的 AddHandler Line 它可以完美运行。虽然它没有正确关闭/处理表单,所以我想我还有更多工作要做......
猜你喜欢
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多