Как я могу поместить изображение в мой Picturebox, используя ImageLocation? - PullRequest
2 голосов
/ 05 ноября 2011

Я создал Picturebox на своей панели, и я хотел бы заполнить его изображением локально.

Это то, что я сделал до сих пор, и следующий код является лишь небольшой частью моей панеликод создания.

PictureBox picture = new PictureBox
        {
            Name = "pictureBox",
            Size = new Size(100, 50),
            Location = new Point(14, 17)
        };
        p.Controls.Add(picture);
        picture.ImageLocation = @"..\Image\1.jpg";

Это работает, но не полностью, так как после того, как я запустил свое приложение формы c # windows, оно показывает маленькое белое поле с красным крестом в центре вместо изображения.Есть идеи как это решить?

Ответы [ 2 ]

8 голосов
/ 05 ноября 2011

Настройка изображения с помощью picture.ImageLocation() работает нормально, но вы используете относительный путь.Сравните ваш путь с местоположением .exe после его создания.

Например, если ваш .exe расположен по адресу:

<project folder>/bin/Debug/app.exe

изображение должно быть по адресу:

<project folder>/bin/Image/1.jpg


Конечно, вы можете просто установить изображение во время разработки (свойство Image в свойстве PictureBoxлист).

Если вы должны установить его во время выполнения, один из способов убедиться, что вы знаете местоположение изображения, это добавить файл изображения в ваш проект.Например, добавьте новую папку в ваш проект, назовите ее Image.Щелкните правой кнопкой мыши папку, выберите «Добавить существующий элемент» и перейдите к изображению (убедитесь, что фильтр файлов настроен на отображение файлов изображений).После добавления изображения в окне свойств установите Copy to Output Directory на Copy if newer.

. На этом этапе файл изображения будет скопирован при сборке приложения, и вы сможете использовать

picture.ImageLocation = @"Image\1.jpg"; 
1 голос
/ 05 ноября 2011

если вы укажете неверный путь или неработающую ссылку, если компилятор не сможет найти изображение, в графическом окне появится значок X на его теле.

PictureBox picture = new PictureBox
        {
            Name = "pictureBox",
            Size = new Size(100, 50),
            Location = new Point(14, 17),
            Image = Image.FromFile(@"c:\Images\test.jpg"),
            SizeMode = PictureBoxSizeMode.CenterImage
        };
p.Controls.Add(picture);

OR

PictureBox picture = new PictureBox
        {
            Name = "pictureBox",
            Size = new Size(100, 50),
            Location = new Point(14, 17),
            ImageLocation = @"c:\Images\test.jpg",
            SizeMode = PictureBoxSizeMode.CenterImage
        };
p.Controls.Add(picture);

Я не уверен, куда вы помещаете изображения в структуру папок, но вы можете найти путь ниже

 picture.ImageLocation = Path.Combine(System.Windows.Forms.Application.StartupPath, "Resources\Images\1.jpg");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...