Данная пошаговая инструкция позволит вам вставлять различные графические объекты в PictureBox.
Создайте новый проект Windows Form в Microsoft Visual Studio и добавьте компонент «PictureBox» на форму.
Определите способ изменения размеров элемента управления «PictureBox» с его родительским элементом управления. Задав свойству «Dock» параметр «Fill», указывающий, что все края элемента управления закрепляются у краев содержащего его элемента, в данном случае это края формы.
Добавьте на форму компонент «ContextMenuStrip»
После добавления компонента, введите в первое поле слово «Вставить».
Сделайте двойной клик по кнопке «Вставить» и перейдите в автоматически созданный метод «вставитьToolStripMenuItem_Click». Добавьте в него следующий листинг:
Добавьте дополнительно в листинг вашей главной формы метод проверки, того что находится в буфере обмена, если это изображение, то метод даст разрешение на вставку:
Создайте новый проект 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Перейдите в свойства компонента «PictureBox» и найдете свойство «ContextMenuStrip». В меню данного свойства, выберете ваше контекстное меню «сontextMenuStrip1».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;
Добавьте дополнительно в листинг вашей главной формы метод проверки, того что находится в буфере обмена, если это изображение, то метод даст разрешение на вставку:
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». Выберете любое изображение и скопируйте его в буфер обмена. После помещения изображения в буфер обмена, сделайте клик правой клавишей мыши по форме вашего приложения, из появившегося контекстного меню выберете единственный пункт «вставить». Если вы все сделали правильно, то увидите свое изображение в вашем приложении.
Ссылка для скачивания примера: Яндекс.Диск
Не совсем понимаю: Создать консольное приложение или винформс? Если 2, то куда что добавить? У меня просто не робит(
ОтветитьУдалить