|
分類:[.NET 全般]
VBで継承可能な親フォームにStartUpというイベントを実行します。
Partial Public Class BaseForm Inherits Form
Protected Event StartUp() 'イベント Private _init As Integer = 0
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) MyBase.OnLoad(e) If _init = 0 Then RaiseEvent StartUp() 'イベント発生 _init = 1 End If End Sub End Class
継承先のサブフォーム側にはカミナリマークにStartUpイベントが表示され、問題ありませんでした。
これをC# public partial class BaseForm : Form {
protected event StartUpEventHandler StartUp; //イベント protected delegate void StartUpEventHandler(); //デリゲート private int _init = 0; protected override void OnLoad(System.EventArgs e) { base.OnLoad(e); if (_init == 0) { if (StartUp != null) { StartUp(); //イベント発生 } _init = 1; } } }
に書き換えるとサブフォーム側のカミナリマークにStartUpイベントが出てきません。 ところがeventとdelegateの修飾子をpublicにするとカミナリマークが表示されるのです。 C#については知識があまりないのですが、どういうことかご教授願いないでしょうか?
|