2011-05-25 66 views
0

代码在这里,设计师窗口有一个按钮和一个图片框!没有错误,但无法加载窗口形式的图像

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 = Image.FromFile(dlg.FileName); 
     /* PictureBox1.Image = new Bitmap(dlg.FileName); 

      // Add the new control to its parent's controls collection 
      this.Controls.Add(PictureBox1); 
      //dlg.Dispose();*/ 
    } 
} 

没有错误窗口打开时,当我按下按钮,打开目录,然后选择的图像,但它不能在窗口中加载图像。 IM加载的图像是49.6 MB,这是否会产生任何问题。

+0

你必须在PictureBox1添加到窗体控件集合如您在禁用的代码做了。 – 2011-05-25 12:32:12

回答

3

你已经评论过你将图片框添加到窗口的部分,也建议设置图片框的一些基本宽度/高度,以便确保它显示在屏幕上。

它可以用更小的测试图像吗?

+0

@Bug Finder ...只有图像的一部分在位于按钮 – raghu 2011-05-25 12:41:25

+0

的左上角(有一个按钮用于加载图像)位移?或显示? – BugFinder 2011-05-25 12:56:22

+0

对不起其显示!在左上角 – raghu 2011-05-25 13:14:33

1

不是随时创建图片框,而是将其放在设计器的任意位置,并将其可见属性设置为False。

假设只要按下按钮,而不会产生任何新的图片框,另外改变其可见的true你将它命名为PictureBox1只是转让其图片:

PictureBox1.Image = Image.FromFile(dlg.FileName); 
PictureBox1.Visible = true; 

根据您目前的代码,图片框获取默认位置0,0,这意味着窗口的左上角。

+0

向导... PictureBox1.Visible = true;这个属性我有set.even虽然结果是相同的,但我could'nt得到你说什么“只要按下按钮分配其图像,而不创建任何新的图片框”我认为我提到的是同一个! – raghu 2011-05-25 13:04:56

+0

@raghu在你发布的代码中**创建**带代码的图片框。而不是这样做,它已经在你的形式,你有相同的方式按钮。希望现在清楚吗? – 2011-05-25 13:08:00

+0

@shadow ...有代码写的按钮和小代码采取的文件名和图片框中显示..我刚刚放置在窗口中的图片框,以便当我按下按钮时,它打开打开文件对话框并在图片框中显示图片.. – raghu 2011-05-25 13:18:25

0

尝试

PictureBox.Image = new Bitmap(dlg.FileName); 
PictureBox.SizeMode = PictureBoxSizeMode.StretchImage;