在表单中打开、选择并添加一个.jpg文件

本文关键字:一个 文件 jpg 添加 表单 选择 | 更新日期: 2023-09-27 18:04:53

如何在c#中从计算机的任何目录中打开,选择和添加一个只有jpeg格式的文件?代码如下:

private void open2ToolStripMenuItem_Click(object sender, EventArgs e)
{
    pictureBox1.Visible = true;
    string Chosen_File = "";    
    Chosen_File = openFileDialog1.FileName;          
    openFileDialog1.Title = "Insert an image";   
    openFileDialog1.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
    openFileDialog1.FileName ="";
    openFileDialog1.Filter = "JPEG Images|*.jpg|GIF Images|*.gif|All Files|";
    openFileDialog1.ShowDialog();
    if (openFileDialog1.ShowDialog() != DialogResult.Cancel)
    {
        Chosen_File = openFileDialog1.FileName;
        pictureBox1.Image = Image.FromFile(Chosen_File);
    }
 }

在表单中打开、选择并添加一个.jpg文件

删除第一个openFileDialog1.ShowDialog()

 private void button1_Click(object sender, EventArgs e)
    {
        pictureBox1.Visible = true;
        string Chosen_File = "";
        Chosen_File = openFileDialog1.FileName;
        openFileDialog1.Title = "Insert an image";
        openFileDialog1.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
        openFileDialog1.FileName = "";
        openFileDialog1.Filter = "JPEG Images|*.jpg|GIF Images|*.gif|All Files|";
        //openFileDialog1.ShowDialog();
        if (openFileDialog1.ShowDialog() != DialogResult.Cancel)
        {
            Chosen_File = openFileDialog1.FileName;
            pictureBox1.Image = Image.FromFile(Chosen_File);
        }
    }

除此之外,你的代码工作得很好!

你只有一个openFileDialog1.ShowDialog();。删除第一个,只使用if子句中的那个!if子句在显示对话框后使用结果。我也更喜欢显式检查DialogResult.OK,但这不应该有什么区别。

你的代码显示对话框窗口两次,不是吗?(确实如此!)如果您选择要在第一个对话框中显示的图像,您将获得第二次对话框,然后也必须在那里确定它。如果取消第二个对话框,将不会显示任何内容。

结果,即用户的选择只能直接从Show()返回;如果你不在那里抓住它,它就会丢失!这与选项的内容不同,对话框的字段(例如文件名)都在后面。