5

概要

わかりました、私はこれをGoogleにしましたが、すでに大きな脂肪NOを期待しています!! しかし、人々の頭の中に奇妙な小さな知識の宝石が潜んでいることが時々あることを知っているので、私は尋ねるべきだと思いました^_^

私は研究用の本でいくつかの演習に取り組んでいます。この特定の演習はユーザー コントロールです。コントロールをまとめて DefaultEvent を設定したい (以前のコントロールでこれを行った) ため、ダブルクリックすると、作成されるデフォルト イベントは指定したものになります。

注:これは標準のユーザー コントロール (.ascx) であり、レンダリングされたカスタム コントロールではありません。

現在のコード

クラスとイベントの定義は次のとおりです。

[System.ComponentModel.DefaultEvent("OKClicked")]
public partial class AddressBox : System.Web.UI.UserControl
{
    public event EventHandler OKClicked;

現在の結果

ここで、コントロールが ASPX ページ上にあるときにコントロールをダブルクリックすると、次のものが作成されます。

    protected void AddressBox1_Load(object sender, EventArgs e)
    {

    }

私が期待していたものではありません!だから、私の質問:

UserControl の DefaultEvent を定義することは可能ですか? ハックですか?サポートされていない場合、理由はありますか?


補足: コードにアンダースコアを挿入するにはどうすればよいですか? char を入れてエスケープできないようですか?

4

2 に答える 2

0

OK、これをチェックアウトしました。UserControlではなくWebControlから継承しています。すべて正常に機能しました。

ダレンコップがこれの王冠を握っているように見えます!入力ありがとうございます!

于 2008-08-15T08:22:42.447 に答える
0

これは、テストなしで可能な答えです(マーティンが行ったように)。

リフレクターでは、DefaultEventAttribute がそれ自体を継承できることがわかります。リフレクタでは、UserControl クラスのデフォルト イベントが Load イベントに設定されていることがわかります。

考えられる理由は、OKClick のデフォルト イベントでユーザー コントロールを装飾していても、デフォルト イベントが Load である UserControl から継承されているため、VS はデフォルト イベントがロードであると考えている可能性があることです。

何が起こっているのかについての高レベルの推測です。

于 2008-08-14T16:42:13.093 に答える