vb.net - Visual Studios 设计器实现中的表单继承

标签 vb.net forms inheritance visual-studio-2005 visual-studio-2003

我正在将一个项目从 Visual Studio 2003 转移到 2005,并且刚刚看到了

The event Click is read-only and cannot be changed

当使用继承的表单时,无论基表单控件上的修饰符如何,都将使设计器中的基表单中的所有控件只读(尽管在 2003 年它不是这样工作的)。

我发现这篇文章提到此功能已被暂时“禁用” http://social.msdn.microsoft.com/Forums/en-US/winformsdesigner/thread/c25cec28-67a5-4e30-bb2d-9f8dbd41eb3a

任何人都可以确认是否再使用此功能?或者如何围绕它进行编程以能够使用 Base Control Events 并且仍然有一个设计器?

这是我发现的一种方法,但当它用于为您安装管道时非常痛苦。甚至只是隐藏您现在手动执行的控件之一。

Public Class BFormChild

    Friend Overrides Sub cmdApply_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        MyBase.cmdApply_Click(sender, e)
    End Sub
    Friend Overrides Sub cmdCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        MyBase.cmdCancel_Click(sender, e)
    End Sub
    Friend Overrides Sub cmdOk_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        MyBase.cmdOk_Click(sender, e)
    End Sub

End Class

最佳答案

生成事件的基类需要标准的事件生成模式。这必须在代码中完成,设计者不能自动生成它。它永远不会。

Public Class BFormBase
  Public Event ApplyClicked As EventHandler

  Protected Overridable Sub OnApplyClicked(ByVal e As EventArgs)
    '--- Possible default implementation here
    '...
    RaiseEvent ApplyClicked(Me, e)
  End Sub

  Private Sub cmdApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdApply.Click
    OnApplyClicked(e)
  End Sub

关于vb.net - Visual Studios 设计器实现中的表单继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2742782/

相关文章:

c# - 设置MDI-Parent Form的可用区域

javascript - 提交时未运行表单验证

html - 选择继承(::selection、::-moz-selection)

mysql - 通过 VB.NET 更新 MYSQL 记录

mysql - 在整个表中搜索一个单词 - MySQL

c# - 如何使用 GUI 在 Visual Studio 项目中添加和编译 Windows 窗体,而不是直接从 Visual Studio?

forms - 我可以使用css3制作这个银色渐变效果的登录表单吗?

java - 什么是更好的方法?沮丧?界面?抽象类?

java - java变量的多态或改名

mysql - 错误: Conversion from string "" to type 'Double' is not valid