Load a bitmap image into Windows Forms using open file dialog

后端 未结 8 709
梦毁少年i
梦毁少年i 2020-12-10 02:21

I need to open the bitmap image in the window form using open file dialog (I will load it from drive). The image should fit in the picture box.

Here is the code I t

相关标签:
8条回答
  • 2020-12-10 02:54

    You have to create an instance of the Bitmap class, using the constructor overload that loads an image from a file on disk. As your code is written now, you're trying to use the PictureBox.Image property as if it were a method.

    Change your code to look like this (also taking advantage of the using statement to ensure proper disposal, rather than manually calling the Dispose method):

    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);
            }
        }
    }
    

    Of course, that's not going to display the image anywhere on your form because the picture box control that you've created hasn't been added to the form. You need to add the new picture box control that you've just created to the form's Controls collection using the Add method. Note the line added to the above code here:

    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's controls collection
                this.Controls.Add(PictureBox1);
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-10 03:03

    You, can also try like this, PictureBox1.Image = Image.FromFile("<your ImagePath>" or <Dialog box result>);

    0 讨论(0)
提交回复
热议问题