gpt4 book ai didi

vb.net - 如何使用 VB.NET 中的接口(interface)处理事件?

转载 作者:行者123 更新时间:2023-12-04 00:39:14 27 4
gpt4 key购买 nike

我是界面新手,我想了解它们的工作原理。

我写了下面的代码,除了点击事件没有触发外,它工作正常。

Public Class Form1
Dim WithEvents Button As IClass = New MyButton

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button.Parent = Me
End Sub

Public Sub ClickEventHandler(ByVal Sender As Object, ByVal E As EventArgs) Handles Button.Click
MsgBox("Piwpiw !")
End Sub
End Class

Public Interface IClass
Event Click(ByVal Sender As Object, ByVal E As EventArgs)
Property Parent
End Interface

Public Class MyButton
Inherits SimpleButton
Implements IClass

Public Event click1(ByVal Sender As Object, ByVal E As System.EventArgs) Implements IClass.click

Public Property Parent1 As Object Implements IClass.Parent
Get
Return MyBase.Parent
End Get
Set(ByVal value As Object)
MyBase.Parent = value
End Set
End Property
End Class

这段代码有什么问题?

(PS:这只是一个让我理解接口(interface)如何工作的例子,没有任何功能意义。)

最佳答案

您在 MyButton 类中缺少一个方法来完成这项工作。

你需要这个:

Private Sub MyButton_Click(sender As Object, e As System.EventArgs) Handles Me.Click
RaiseEvent click1(sender, e)
End Sub

本质上 SimpleButton 已经有一个点击方法。当您单击派生的 MyButton 类时,它会被引发。但是SimpleButton 上的Click 事件与IClass 界面上的Click 事件不同。您将其实现为 click1。因此,您只需在引发 Click 方法时引发 click1 方法即可。因此采用上述方法。

关于vb.net - 如何使用 VB.NET 中的接口(interface)处理事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21228703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com