3

私はプロジェクトをVisualStudio2003から2005に移行する過程にあり、

イベントClickは読み取り専用であり、変更できません

ベースフォームの修飾子に関係なく継承されたフォームを使用する場合、コントロールはデザイナでベースからのすべてのコントロールを読み取り専用にします(2003年にはこのようには機能しませんでした)。

この投稿で、この機能が一時的に無効になっていることに言及していることがわかりました」 http://social.msdn.microsoft.com/Forums/en-US/winformsdesigner/thread/c25cec28-67a5-4e30-bb2d-9f8dbd41eb3a

この機能がもう使用されているかどうかを誰かが確認できますか?または、ベースコントロールイベントを使用しながらデザイナーがいるようにプログラムする方法はありますか?

これは私が見つけた1つの方法ですが、それがあなたのために配管を行っていたときはかなり苦痛でした。手動で行っているコントロールの1つを非表示にするだけでも。

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
4

1 に答える 1

3

イベントを生成する基本クラスには、標準のイベント生成パターンが必要です。これはコードで行う必要があり、デザイナーはそれを自動生成できません。それは決してありません。

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
于 2010-04-30T13:32:13.217 に答える