* U K I Y A H O N P O *
Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura,
che la diritta via era smarrita.
リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
浮子屋商店もよろしく。

C#コード断片/2.0/メニューにたくさんの項目を動的にAddする の変更点

Top > C#コード断片 > 2.0 > メニューにたくさんの項目を動的にAddする

* [2.0]メニューにたくさんの項目を動的にAddする場合の注意 [#lb1da2ad]

メインメニューのある項目の中身をごっそり入れ替える、等、
メニューを動的に操作する際、.NET2.0では、メニューが
ちらついてむやみに時間がかかる。

** これまで [#f9d756bf]

#code(Csharp,nooutline){{
menuGhost.MenuItems.Clear();
menuGhost.MenuItems.AddRange(citems);
}}

これまではこのコードで特に問題なかった。
(menuGhostはメインメニューの1項目とする。また、citemsは100程度の配列)

** 対処方法 [#d6d79964]

#code(Csharp,nooutline){{
menuMain.MenuItems.Remove(menuGhost);
menuGhost.MenuItems.Clear();
menuGhost.MenuItems.AddRange(citems);
menuMain.MenuItems.Add(3, menuGhost);
}}

一旦メインメニューから消した後に変更し、再度追加すれば問題はおきない。

** 補足 [#ta93d192]

コンテキストメニュー等、メインメニューに紐付いていないメニューでは
問題はおきないようだ。

#comment