3

プロジェクト リソース (Windows Mobile 6.1) にイメージを追加します。この画像を使用して、フォームにあるいくつかの PictureBoxes の PictureBox.Image プロパティを設定したいと考えています。次のコードを試します。

pictureBox1.Image = Properties.Resources.my_image;
pictureBox2.Image = Properties.Resources.my_image;
pictureBox3.Image = Properties.Resources.my_image;

...

pictureBoxN.Image = Properties.Resources.my_image;

問題は、画像が一部の PictureBox にのみ表示され (TargetInvocationException画像を設定しようとすると が表示される)、すべてでは表示されない場合があることです。なんで?どうすればこの問題を解決できますか?

編集

InnerException の StackTrace:

System.Reflection.RuntimeConstructorInfo.InternalInvoke(RuntimeConstructorInfo rtci) の System.Drawing.Bitmap..ctor(ストリーム ストリーム) の System.Drawing.Bitmap._InitFromMemoryStream(MemoryStream mstream) の Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar) System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr、Binder バインダー、Object[] パラメーター、CultureInfo カルチャ) の System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr、Binder バインダー、Object[] パラメーター、CultureInfo カルチャ) .Reflection.ConstructorInfo.Invoke(Object[] parameters) in System.Resources.ResourceReader.CreateResource(Type objType, Type[] ctorParamTypes, Object[] ctorParameters) in System.Resources.ResourceReader.LoadBitmap(Int32 typeIndex) in System.Resources .System.Resources.ResourceReader.LoadObject(Int32 pos, ResourceTypeCode& typeCode) の ResourceReader.LoadObjectV2(Int32 pos, ResourceTypeCode& typeCode) System.Resources.RuntimeResourceSet.GetObject(String key, Boolean ignoreCase) in System.Resources.ResourceManager.GetObject(String) Name, CultureInfo culture) の Icons_Control.Properties.Resources.get_glass_empty() の Icons_Control.ListItem.set_CompletitionStatus(eCompletionStatus 値) の Icons_Control.ListItem..ctor() の Icons_Control.ListItem..ctor(eItemType タイプ) の Icons_Control.MainForm の。 System.Windows.Forms.Menu.OnClick(EventArgs e) の menuItem3_Click(オブジェクト送信者, EventArgs e) System.Windows.Forms.Menu.ProcessMnuProc(Control ctlThis, WM wm, Int32 wParam, Int32 lParam) System.Windows. Forms.Form.WnProc(WM wm, Int32 wParam,Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain) の System.Windows.Forms.Application.Run(Form fm) の System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam) の Int32 lParam) ) Icons_Control.Program.Main() 内

4

1 に答える 1

2

私の推測では、メモリまたはその他のリソースが不足していると思われます。画像リソースは少し危険です。リソースを取得するたびに、新しいリソースが作成されます。おそらく、my_image のインスタンスを 1 つだけ作成したいだけで、使い終わったら破棄したいと思うでしょう。

Image myImage = Properties.Resources.my_image;

pictureBox1.Image = myImage;
pictureBox2.Image = myImage;
pictureBox3.Image = myImage;
pictureBox4.Image = myImage;
...
pictureBoxN.Image = myImage;

// Later on when you are done using it
myImage.Dispose();

メモリを無駄にしないために、ほとんどの CF アプリで非常に重要です。

于 2013-01-10T16:25:29.647 に答える