複合コントロールの動的Button生成

2270 ワード

Buttonの生成は実は難しくなくて、面倒なのはその事件で、私は多くの反コンパイルのコードを見て、ネット上の多くの人のコードがあって、私の考えとすべて異なって、今までコントロールの事件の実行と再送に対してまだ比較的にあいまいで、後で時間があってよく研究する必要があって、残念ながら良い本がなくて、コードを研究するしかありません.
ところで、ネット上のコントロール生成には、すべてのイベントが複合コントロールのイベント属性の形で実現されるため、Buttonのようなコントロールを動的に追加することはできないという弊害があるが、固定的な組み合わせコントロールであればよい.私のコードはとても简単で、しかし私も多くの时間をかけて探求して、主に似たような资料が少なすぎて、実现するのも完璧ではありませんて、多くは言わないで直接コードを见ましょう、とても简単です(T.T);
    public class testControl : CompositeControl
    {
        void bt_Click(object sender, EventArgs e)
        {
            EventHandler handler = (EventHandler)this.Events[sender];
            if (handler != null)
            {
                handler(this, EventArgs.Empty);
            }
        }
        public void AddButton(string text, EventHandler e)
        {
            Button bt = new Button();
            bt.Click +=new EventHandler(bt_Click);
            this.Events.AddHandler(bt, e);
            Controls.Add(bt);
        }
    }


.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }