none
双击picturebox全屏显示怎么做? RRS feed

  • 问题

  • VS2008我做winform程序,用tablelayoutpanel画格,每个格里放了一个picturebox设置在父容器中停靠。tablelayoutpanel只占窗口的一部分。

    我想在双击picturebox的时候,让picturebox全屏显示(至少在整个窗口显示)。

    之前没有tablelayoutpanel这容器的时候,用dock属性和bringtofront能让picturebox在整个窗口显示。

    能让picturebox跨越容器限制全屏显示么?

    2013年3月15日 6:37

答案

  • private void pictureBox1_DoubleClick(object sender, EventArgs e)
            {
                int w = ScreenArea.Width;
                int h = ScreenArea.Height; 
                Image im = pictureBox1.Image;
                Form2 frm2 = new Form2();
                frm2.pictureBox1.Image = im;
                frm2.Width = w;
                frm2.Height = h;
                
                frm2.Show();
            }
            Rectangle ScreenArea;
            private void Form1_Load(object sender, EventArgs e)
            {
                //ScreenArea = System.Windows.Forms.Screen.GetWorkingArea(this);
                ScreenArea = System.Windows.Forms.Screen.GetBounds(this);
            }

    • 已标记为答案 Mclovin 2013年3月15日 7:30
    2013年3月15日 7:09

全部回复

  • 我自己想到了一个方法,希望有更好的办法的可以发出来参考下

    再添加一个form窗口,把formbordersyle设置为none,添加一个picturebox在父容器中停靠。

    在原来的form中picturebox的doubleclick事件下把picturebox的image赋给新窗口的picturebox,并显示新窗口:

    Form2 frm2 = new Form2();

    frm2.pictureBox1.Image = this.pictureBox1.Image;

    frm2.Show();

    在新form中,picturebox的doubleclick事件中关闭新窗口:

    this.Close();

    把新窗口的大小设置成想要的大小,全屏的话,应该可以获得屏幕大小,然后赋值给窗口的长宽属性。

    2013年3月15日 6:58
  • private void pictureBox1_DoubleClick(object sender, EventArgs e)
            {
                int w = ScreenArea.Width;
                int h = ScreenArea.Height; 
                Image im = pictureBox1.Image;
                Form2 frm2 = new Form2();
                frm2.pictureBox1.Image = im;
                frm2.Width = w;
                frm2.Height = h;
                
                frm2.Show();
            }
            Rectangle ScreenArea;
            private void Form1_Load(object sender, EventArgs e)
            {
                //ScreenArea = System.Windows.Forms.Screen.GetWorkingArea(this);
                ScreenArea = System.Windows.Forms.Screen.GetBounds(this);
            }

    • 已标记为答案 Mclovin 2013年3月15日 7:30
    2013年3月15日 7:09
  • 谢谢分享!


    Lisa Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年4月9日 12:56
    版主