コンテンツ

Activity

リンク

Comment

雑記に戻る

2004/02/12(木)

ContextMenu.Dispose() でハマル

ContextMenu 処理終了時に ContextMenu.Dispose() / MenuItem.Diapose() してはいけません。MenuItem.Click イベントが正しく発生しなくなります。(MenuItem.Diapose() で MenuItem.Index が おかしくなる、 ContextMenu.Dispose() でそもそもイベントが投げられない)


    ContextMenu contextMenu = null;
    try {
        contextMenu = new ContextMenu();

        // contextMenu にアイテム追加

        // 本来は Form なりに関連付けるべき
        contextMenu.Show( ... );
    }
    finally {
        if( ContextMenu != null ) {
            for( int i=0; i<contextMenu.MenuItems.Count; i++ )
                contextMenu.MenuItems[i].Dispose();
            contextMenu.Dispose();
        }
    }

で、これでうまくいかないとなるとどこで Dispose() すればよいのでしょうか。設計から見直すべき?

コメントを追加

名前、コメントは必須です。HTMLタグ、実態参照文字は使うことが出来ません。クッキーは年内対応予定。URI,メールアドレスはリンクを張ります。

名前 : 
Mail : 
Web : 

goto Top

Copyright(C)方位記号

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル