|
■No44468 (sas さん) に返信
>>■No44466 (sas さん) に返信
> すいません、返信頂いた内容がイメージできなかったのですが、継承先に記述しているイベント処理を継承元に記述すると
> いう事でしょうか?
> 継承先に記述しているボタンイベントとは、データベース更新などの各PGそれぞれの個別使用となるため、それを継承元に
> 記述する事はできません。
継承元で共通の処理をして、その結果からイベントを発生させるかどうかを判断するなら、こんな感じ。
Form1にBtnRegistのボタンを配置。
Public Class Form1
Public Event Regist As EventHandler
Private Sub btnRegist_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegist.Click
'条件を満たす場合のみイベントを発火
If hoge_check Then RaiseEvent Regist(Me, New EventArgs)
End Sub
'共通処理のチェック
Function hoge_check() As Boolean
Return True
End Function
End Class
一回コンパイルして、継承フォームForm2を追加。
'Form1を継承
Public Class Form2
Private Sub Form2_Regist(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Regist
'各画面で個別の登録処理
End Sub
End Class
これなら、hoge_check()が真の場合のみ、各画面にRegistイベントが発火されるから共通チェックなんかはこれで統一するのがいいかも。
> 継承元に「e.Handled = True」のような記述を行い、継承先でのイベントをキャンセルできないのでしょうか?
こっちのパターンをするなら、CancelEventArgs:EventArgs、CancelEventHandler:EventHandlerみたいなイベントを用意してイベントを発火。
どっちのパターンを使用するかは、システムの構成によって判断してください。
|