Подтвердить что ты не робот

Загрузите растровое изображение в форму окна с помощью диалогового окна с открытым файлом!

Мне нужно открыть растровое изображение в форме окна, используя диалоговое окно с открытым файлом (я загружу его с диска). Изображение должно поместиться в окне изображения. Вот какой код я пробовал, но получил ошибку!

 private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

            dlg.Title = "Open Image";
            dlg.Filter = "bmp files (*.bmp)|*.bmp";

            if (dlg.ShowDialog() == DialogResult.OK)
            {                     
            PictureBox PictureBox1 = new PictureBox();                    
                PictureBox1.Image(dlg.FileName);
            }

            dlg.Dispose();
        }
4b9b3361

Ответ 1

Вам нужно создать экземпляр класса Bitmap, используя перегрузка конструктора, которая загружает изображение из файла на диск. Поскольку ваш код написан сейчас, вы пытаетесь использовать свойство PictureBox.Image , как если бы это был метод.

Измените свой код, чтобы он выглядел следующим образом (также используя using statement, чтобы обеспечить правильное удаление, а не вручную вызывать Dispose):

private void button1_Click(object sender, EventArgs e)
{
    // Wrap the creation of the OpenFileDialog instance in a using statement,
    // rather than manually calling the Dispose method to ensure proper disposal
    using (OpenFileDialog dlg = new OpenFileDialog())
    {
        dlg.Title = "Open Image";
        dlg.Filter = "bmp files (*.bmp)|*.bmp";

        if (dlg.ShowDialog() == DialogResult.OK)
        {
            PictureBox PictureBox1 = new PictureBox();

            // Create a new Bitmap object from the picture file on disk,
            // and assign that to the PictureBox.Image property
            PictureBox1.Image = new Bitmap(dlg.FileName);
        }
    }
}

Конечно, это не будет отображаться в любом месте формы, потому что созданный вами элемент управления изображением не добавлен в форму. Вам нужно добавить новый элемент управления изображением, который вы только что создали, в форму Controls collection с помощью Add. Обратите внимание на строку, добавленную к приведенному здесь коду:

private void button1_Click(object sender, EventArgs e)
{
    using (OpenFileDialog dlg = new OpenFileDialog())
    {
        dlg.Title = "Open Image";
        dlg.Filter = "bmp files (*.bmp)|*.bmp";

        if (dlg.ShowDialog() == DialogResult.OK)
        {
            PictureBox PictureBox1 = new PictureBox();
            PictureBox1.Image = new Bitmap(dlg.FileName);

            // Add the new control to its parent controls collection
            this.Controls.Add(PictureBox1);
        }
    }
}

Ответ 2

Вам следует попробовать:

  • Создать визуальный образ в форме (проще)
  • Установите для свойства Dock свойство picturebox на Fill (если вы хотите, чтобы изображение заполнило форму)
  • Установите SizeMode для окна с изображениями StretchImage

Наконец:

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog dlg = new OpenFileDialog();
    dlg.Title = "Open Image";
    dlg.Filter = "bmp files (*.bmp)|*.bmp";
    if (dlg.ShowDialog() == DialogResult.OK)
    {                     
        PictureBox1.Image = Image.FromFile(dlg.Filename);
    }
    dlg.Dispose();
}

Ответ 3

Хорошо работает.  Попробуйте это,

private void addImageButton_Click(object sender, EventArgs e)
{
    OpenFileDialog of = new OpenFileDialog();
    //For any other formats
    of.Filter = "Image Files (*.bmp;*.jpg;*.jpeg,*.png)|*.BMP;*.JPG;*.JPEG;*.PNG"; 
    if (of.ShowDialog() == DialogResult.OK)
    {
        pictureBox1.ImageLocation = of.FileName;

    }
}

Ответ 4

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    if (open.ShowDialog() == DialogResult.OK)
        pictureBox1.Image = Bitmap.FromFile(open.FileName);
}

Ответ 5

Вы также можете попробовать, PictureBox1.Image = Image.FromFile("<your ImagePath>" or <Dialog box result>);

Ответ 6

PictureBox.Image - это свойство, а не метод. Вы можете установить его так:

PictureBox1.Image = System.Drawing.Image.FromFile(dlg.FileName);

Ответ 7

Вы можете попробовать следующее:

private void button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog fDialog = new OpenFileDialog();
        fDialog.Title = "Select file to be upload";
        fDialog.Filter = "All Files|*.*";
        //  fDialog.Filter = "PDF Files|*.pdf";
        if (fDialog.ShowDialog() == DialogResult.OK)
        {
            textBox1.Text = fDialog.FileName.ToString();
        }
    }

Ответ 8

Это просто. Просто добавьте:

PictureBox1.BackgroundImageLayout = ImageLayout.Zoom;