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
因此,声明控件,不仅具有不同的范围(这也可能是一个问题,但不是这篇文章的主题),但是有一个问题.然后,handle子句将事件处理程序分配给它.
在#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将重做它,具有重复声明,当然还有编译时错误.
有没有人知道解决这个问题的方法,某种方式来自定义默认处理程序?即使它只是某种方式可以关闭它们,所以它可以手动输入?
Sharpdevelop是根据LGPL许可证发布的,因此您可以随时获取源代码并进行所需的任何更改.
对于所需的更改,您可能需要更改或覆盖VBNetDesignerGenerator类中的InsertComponentEvent和CreateEventHandler方法.它在FormsDesigner项目中.
你可以在这里获得消息来源.