|
分類:[VB.NET/VB2005 以降]
VB2008でWindowsフォームのプログラムを作成しています。
フォームのロード時、指定されたサンプルを元にフォーム上のTreeViewにノードを追加するような処理を行っていますが、 ノード数が多くなる場合にはTreeViewの描画に時間がかかるため、ノードの追加は TreeView.BeginUpdateとTreeView.EndUpdateの間で行っています。 ただ、サンプルによっては、フォームのロード時(フォームのShownイベントの発生前)にこのノードの追加を行うと、 以下のようなエラーが出てしまいます。
System.ArgumentException: 使用されたパラメータが有効ではありません。 場所 System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format) 場所 System.Drawing.Bitmap..ctor(Int32 width, Int32 height) 場所 System.Drawing.Icon.ToBitmap() 場所 System.Windows.Forms.ThreadExceptionDialog..ctor(Exception t) 場所 System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t) 場所 System.Windows.Forms.Control.WndProcException(Exception e) 場所 System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e) 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 場所 System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, Int32 wParam, Int32 lParam) 場所 System.Windows.Forms.Control.SendMessage(Int32 msg, Int32 wparam, Int32 lparam) 場所 System.Windows.Forms.Control.EndUpdateInternal(Boolean invalidate) 場所 System.Windows.Forms.TreeView.EndUpdate()
ちなみに、フォームが完全に開いた状態で、同じサンプルでノードの追加を行うと、上記エラーは発生しません。 また、展開されるノードの少ないサンプルで、フォームのロード時にノードの追加を行っても、上記エラーは発生しません。
これは何かメモリ不足のような状況が発生しているのでしょうか?
|