Данная пошаговая инструкция позволит вам вставлять различные графические объекты в PictureBox.
Создайте новый проект Windows Form в Microsoft Visual Studio и добавьте компонент «PictureBox» на форму.
Определите способ изменения размеров элемента управления «PictureBox» с его родительским элементом управления. Задав свойству «Dock» параметр «Fill», указывающий, что все края элемента управления закрепляются у краев содержащего его элемента, в данном случае это края формы.
Добавьте на форму компонент «ContextMenuStrip»
После добавления компонента, введите в первое поле слово «Вставить».
Сделайте двойной клик по кнопке «Вставить» и перейдите в автоматически созданный метод «вставитьToolStripMenuItem_Click». Добавьте в него следующий листинг:
//Проверяем есть ли в буфере изображение
if (Clipboard.GetImage() != null)
{
//Выводим изображение на pictureBox
pictureBox1.Image = (Image)Clipboard.GetImage();
//Очищаем буфер, может этого и не стоит делать,
//но на этапе тестрования очень удобно
Clipboard.Clear();
//Прекращаем обработку
return;
}
//Если у нас в буфере не было рисунка, но возможно был скопирован
//файл рисунка в буфер, то
//Создаем список в который поместим все скопированные
// имена файлов из буфера
List addFileName = new List();
//помещаем
foreach (var s in Clipboard.GetFileDropList())
addFileName.Add(s.ToString());
//Проверяем если имен файлов нет, то выводим об этом сообщение
if (addFileName.Count < 1)
{
MessageBox.Show("Изображение отсутствует");
return;
}
//Очищаем буфер
Clipboard.Clear();
//Далее загрузка изображения из файла
//Проверяем существование файла
if (!System.IO.File.Exists(addFileName[0])) return;
//Проверяем является ли файл картинкой
if (!IsValid(addFileName[0])) return;
// Stretches the image to fit the pictureBox.
Bitmap MyImage = new Bitmap(addFileName[0]);
pictureBox1.Image = (Image)MyImage;
Перейдите в свойства компонента «PictureBox» и найдете свойство «ContextMenuStrip». В меню данного свойства, выберете ваше контекстное меню «сontextMenuStrip1».
Добавьте дополнительно в листинг вашей главной формы метод проверки, того что находится в буфере обмена, если это изображение, то метод даст разрешение на вставку:
private bool IsValid(string filepath)
{
try
{
using (Image img = Image.FromFile(filepath))
return
img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif) ||
img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png) ||
img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp) ||
img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff) ||
img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch
{
return false;
}
}
Запустите ваш проект, нажав на клавиатуре клавишу «F5». Выберете любое изображение и скопируйте его в буфер обмена. После помещения изображения в буфер обмена, сделайте клик правой клавишей мыши по форме вашего приложения, из появившегося контекстного меню выберете единственный пункт «вставить». Если вы все сделали правильно, то увидите свое изображение в вашем приложении.
Ссылка для скачивания примера: Яндекс.Диск
0.00 (0%) 0 votes

















