web-dev-qa-db-ja.com

ファイルを開くダイアログを使用してビットマップ画像をWindowsフォームにロードします!

ファイルを開くダイアログを使用してウィンドウフォームでビットマップイメージを開く必要があります(ドライブからロードします)。画像は画像ボックスに収まるはずです。

 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();
        }
15
raghu

ディスク上のファイルからイメージをロードする constructor overload を使用して、 Bitmap class のインスタンスを作成する必要があります。あなたのコードは今書かれているので、あなたはPictureBox.Imagepropertyまるでmethodのように。

コードを次のように変更します(手動でusingメソッドを呼び出すのではなく、 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);
        }
    }
}

もちろん、作成したピクチャボックスコントロールがフォームに追加されていないため、フォーム上のどこにでもdisplay画像は表示されません。 Controls method を使用して、作成したばかりの新しいピクチャボックスコントロールをフォームの 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's controls collection
            this.Controls.Add(PictureBox1);
        }
    }
}
32
Cody Gray

正常に動作します。これを試して、

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;

    }
}
8
Zero

あなたがしようとする必要があります:

  • 視覚的に画像ボックスをフォームに作成します(簡単です)
  • PictureboxのDockプロパティをFillに設定します(フォームに画像を入力する場合)
  • ピクチャボックスのSizeModeStretchImageに設定します

最後に:

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();
}
6
Marco
private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    if (open.ShowDialog() == DialogResult.OK)
        pictureBox1.Image = Bitmap.FromFile(open.FileName);
}
2
tanjila

また、PictureBox1.Image = Image.FromFile("<your ImagePath>" or <Dialog box result>);のように試すこともできます

PictureBox.Imageはプロパティであり、メソッドではありません。次のように設定できます。

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

以下を試すことができます:

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();
        }
    }
1
sukhdeep

簡単です。追加するだけです:

PictureBox1.BackgroundImageLayout = ImageLayout.Zoom;
0