Visual Studio 和 SharpDevelop 不会都设置委托来以相同的方式处理事件。它们的设置方式有点不同。这使得很难在一个地方使用 VS 而在另一个地方(在同一个项目上)使用#Develop。
例如,在 VB 中,Visual Studio 执行以下操作:
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
和 ...
Friend WithEvents OK_Button As System.Windows.Forms.Button
以便声明控件,不仅具有不同的范围(这也可能是一个问题,但不是本文的主题),而且具有 withevents。然后通过handles 子句将事件处理程序分配给它。
在#Develop中,它是这样完成的......
Sub OK_ButtonClick(sender As Object, e As EventArgs)
End Sub
和 ...
Private button1 As System.Windows.Forms.Button
然后,在 InitializeComponent 方法中
AddHandler Me.button1.Click, AddressOf Me.OK_ButtonClick
最烦人的事情是,即使它以一种方式完成,另一个 ide 也会重做它,有重复的声明,当然还有编译时错误。
有谁知道解决这个问题的方法,一些自定义默认处理程序的方法?即使它只是可以关闭它们的某种方式,所以它可以手动输入?