none
关于picturebox无法显示 RRS feed

  • 问题

  •  private void Form_Load(object sender, EventArgs e)
            {

                PictureBox[] pic = new PictureBox[8];
                for (int i = 1; i < 8; i++)
                {
                    pic[i] = new PictureBox();
                    pic[i].Height = 100;
                    pic[i].Width = 100;
                    pic[i].SizeMode = PictureBoxSizeMode.StretchImage;

                    pic[i].Location = new Point(200, 130 * i);
                    pic[i].Image = Image.FromFile("d://a.jpg");
                   // pic[i].Image = Image.FromFile("D://image//user1//"+i+".jpg");

                    this.Controls.Add(pic[i]);
                }
            }


    诚恳的请教大家, 我想动态载入图片,然后建了picturebox数组,写了以上代码,但是并没有picturebox显示出来,为什么呢?  难道必须在“设计”栏里面添加picturebox

    才行么???

    2010年2月4日 8:19

答案

全部回复

  • 代码没问题,你跟踪代码运行了没。界面上是不是被别的控件挡住了


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 周星星 2010年2月4日 9:14
    2010年2月4日 8:35
    版主
  • 应该没有挡住,我原先就写了这段代码。。。  很奇怪啊,我在后面加了  messagebox.show("  picture  ");  没有反应  ???
    2010年2月4日 8:40
  • form太小了?拉大点

    图片文件对不对
    http://feiyun0112.cnblogs.com/
    2010年2月4日 8:44
    版主
  • form是全屏,图片文件和路径 用另一个试了, 也没问题。。。。  很头疼啊。。。
    2010年2月4日 8:48
  • 额。。。大侠,我发现这段代码 在我的程序并没有运行。。。。可是为什么呢??
    2010年2月4日 8:50
  • namespace deskwatcher
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();

            }
            private void Form1_Load(object sender, EventArgs e)
            {

                PictureBox[] pic = new PictureBox[8];
                for (int i = 1; i < 8; i++)
                {
                    pic[i] = new PictureBox();
                    pic[i].BackColor = System.Drawing.SystemColors.Highlight;
                    pic[i].Height = 100;
                    pic[i].Width = 100;
                    pic[i].SizeMode = PictureBoxSizeMode.StretchImage;

                    pic[i].Location = new Point(400, 130 * i);
                    pic[i].Image = Image.FromFile("d://a.jpg");
                    // pic[i].Image = Image.FromFile("D://image//user1//"+i+".jpg");

                    this.Controls.Add(pic[i]);
                }
                MessageBox.Show("picture");
            }


            private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }


            private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
            {


            }
        }
    }


    这是那个程序的全部代码。。。

    2010年2月4日 8:53
  • 你好!
         请问哪段代码没有运行啊?
    周雪峰
    2010年2月4日 10:34
    版主
  • 原先那个问题已经解决了, 我可以问你另一个问题么。。。。

    我想把创建的picturebox 数组分别 放在不同的label上面,可是试了很久,不是label 不显示,就是picturebox不显示,很有点麻烦》》》
    2010年2月4日 12:14
  • 请问把PictureBox放到Label上是什么意思啊?你想实现怎样的效果?
    周雪峰
    2010年2月4日 13:24
    版主
  • YEAH!! 你终于 回来啦~~~    写错了写错了,我的意思是,我想创建 很多个panel ,  然后在每个 panel上 放7图片。。。 嗯,就是这个意思
    2010年2月4日 13:44
  • 你好!
         Panel本来就是不显示的,只是把控件的容器!
    周雪峰
    2010年2月4日 17:09
    版主
  • 版主~~现在有一个新问题啦。。。 就是我用 panel_load 载入图片 , 但是只有第一个panel  有反应~~~  然后 不知道怎么写相当于 订阅picturebox_click 的功能

    2010年2月5日 8:59
  • 不好意思,没有明白你的意思!你是想实现什么效果呢?
    周雪峰
    2010年2月5日 11:42
    版主
  • 就是说  我先建了i个panel,然后想在每一个panel上放j个picturebox, 而且要实现每个picturebox单击以后图像最大化   .  我是这么写的,  先是 form_load 里面载入了

    panel ,  然后panel_load 载入 picturebox, 再在picturebox_click 写了最大化。。。   现在的问题是: 能显示了i个panel, 但是只是在第一个panel 里面载入了j个图片,

    而且没个图片单击后都是显示同一个图片。。。  所以就有了两个问题: 就是panel[j]的 内容载入, 和 picture_click  时的图像 路径 的问题~~~   希望你能再给我点帮助

    2010年2月5日 15:30
  • 你好!
         检查一下你是否为其他Panel添加了PictureBox!
    周雪峰
    2010年2月5日 16:18
    版主
  • 版主~~现在有一个新问题啦。。。 就是我用 panel_load 载入图片 , 但是只有第一个panel  有反应~~~  然后 不知道怎么写相当于 订阅picturebox_click 的功能
    picturebox_click += delegate
    应该是事件没有注册的问题吧?
    共同努力,共同提高
    kaedei#live.cn My BLOG
    2010年2月6日 2:42
  • 是的。。。我的意思是  虽然我写了panel的数组, 但是 实际上它只响应了第一个panel的操作    然后我认为 如果用 类似订阅picturebox_click 的功能,pic[i].click

    +=new EventHandler(PictureBox_Click) , 如果可以在panel_load 上实现的话 应该就可以了~~~  这样子 应该怎么实现呢。。。
    2010年2月6日 3:01