2

私はクラスA、Bを持っています

    class A
    {
        public class B
        {
            public event EventHandler handleClick;
            public void eventraising(object sender, EventArgs e)
            {
                if (handleClick != null)
                    handleClick(this, e);
            }
        }

        //handle raised event here
    }

これどうやってするの

4

2 に答える 2

3

クラス A には、まずどこかで Bのインスタンスが必要です。.NET でのクラスの入れ子は、単に型を編成する方法です。インスタンスのいかなる種類の所有権も意味しません。

したがって、次のようにする必要があります。

class A
{

    private B instanceOfB;

    // constructor
    public A() {
        instanceOfB = new B();
        instanceOfB.handleClick += instanceOfB_handleClick;
    }

    // event handler
    private void instanceOfB_handleClick(object sender, EventArgs e) {
        // blah
    }

    public class B
    {
        public event EventHandler handleClick;
        public void eventraising(object sender, EventArgs e)
        {
            if (handleClick != null)
                handleClick(this, e);
        }
    }

}

また、イベントは、handleClick ではなく、Click と呼ぶ必要があります。

于 2010-06-23T07:51:27.160 に答える
0

A に B のインスタンスが必要です。

class A
{
    B b = new B;

    A()
    {
        b.handleClick += (sender, ev) => { ... }
    }
}
于 2010-06-23T07:50:32.600 に答える