フォームでのイベントの設定に問題があります。セットアップは次のとおりです。
エンドユーザーが入力するフォームの 2 つの異なるバージョン (標準と高度) の 2 つのコントロールを持つページが与えられました。2 つのフォームはコードと JavaScript が異なるため、元の開発者はそれらを別々の Web ユーザー コントロールに配置しました。コントロールとは別に、Advanced モードに切り替える LinkButton があります。
<uc1:Standard runat="server" ID="StandardForm" />
<uc1:Advanced runat="server" ID="AdvancedForm" />
<asp:LinkButton runat="server" ID="lnkAdvanced" Text="Go To Advanced" OnClick="lnkAdvanced_Click" />
lnkAdvanced_Click は、現在入力されているすべての情報を詳細に取得し、Visible を反転します。
私の問題は、ボスの 1 人が標準フォーム内に「Go to Advanced」ボタンを望んでいるのに、.Visible コードがページ上にあることです。なので、イベントを使えばできると思ったのですが、うまくいかないようです。
私はこのようなイベントを設定しようとしました:
public event EventHandler AdvanceClick;
protected void lnkAdvanced_Click(object sender, EventArgs e) {
AdvanceClick(sender, e);
}
それがうまくいかなかったとき、私はデリゲートを設定しようとしました:
public delegate void AdvancedEventHandler(object sender, EventArgs e);
public event AdvancedEventHandler AdvanceClick;
ボタンを標準フォームに移動したとき、次のように入力できると期待していました。
StandardForm.AdvanceClick += new AdvancedEventHandler(GoToAdvanced);
しかし、コントロール内のイベントを認識していないようです! エラーが表示されます:「Standard には 'AdvanceClick' の定義が含まれておらず、タイプ 'Standard' の最初の引数を受け入れる拡張メソッド 'AdvanceClick が見つかりませんでした」仕方?