1

サンプル プログラムを作成しようとしていますが、それに必要なビットマップの作成に問題があります。以下のコードを実行しようとすると、ArgumentException が発生します。

ディスク上にファイルが見つからないため、これがスローされていると思います。この場合、プロジェクトのどこにファイルを配置して、ファイルを見つけられるようにしますか? ファイルをメイン プロジェクト ディレクトリに配置しようとしましたが、デバッグ フォルダーとリリース フォルダー内に配置しようとしました。

これが問題の原因ではない場合、誰かが私を正しい方向に向けることができますか?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Drawing;

namespace Given
{
    public class Photo : Form
    {
        Image image;

        public Photo()
        {
            image = new Bitmap("jug.jpg"); // ArgumentException thrown here
            this.Text = "Lemonade";
            this.Paint += new PaintEventHandler(Drawer);
        }

        public virtual void Drawer(Object source, PaintEventArgs e)
        {
            e.Graphics.DrawImage(image, 30, 20);
        }
    }
}

namespace Photo_Decorator
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Given.Photo());
        }
    }
}
4

2 に答える 2

1

JPGが見つからないため、これをスローしているため、適切なビットマップオブジェクトを作成できません。イメージ ファイルを EXE と同じフォルダに配置するか (Debug? Release?)、イメージへの完全なパス (例: C:/jug.jpg) を指定する必要があります。お役に立てれば :)

于 2013-01-29T23:04:07.883 に答える
0

ファイルを実行可能ファイルと同じフォルダー (bin\Debug または bin\Release) に配置する必要があります。フォルダーに配置して、bin代わりに @"..\jug.jpg" をパスとして使用することで、デバッグ モードとリリース モードの両方で動作するようにすることができます。

于 2013-01-29T22:59:34.123 に答える