如何将图片框扩展为另一种形式?

时间:2012-05-30 06:11:51

标签: c# winforms

目前,我的应用程序显示了6个图片框,每个图片框都显示正在不断更新的图片。

现在,我想要点击图片框延伸的任何图片框,并填满整个屏幕,只显示所选的图片框。

这可能吗?我必须创建另一个表单才能执行此操作吗?

先谢谢, Perumal

3 个答案:

答案 0 :(得分:2)

没有看到任何代码,您可以通过以下方式在编辑时更改图片框。

pictureBox1.Dock = DockStyle.Fill

所以你需要创建一个on click事件处理程序并像上面一样调用你的图片框的Dock函数。

更新以回应评论

DockStyle.None可将照片还原为原始尺寸。

如果我理解正确,你想要有6张照片,然后当你点击一张它填充,再次点击,缩小,点击另一张,填充等等...

为此,您可以使用图片框上的Dock和Visible属性。现在看起来好像你要求如何来实际编写代码。好吧,如果你展示一些代码,我可以指点一点,没有什么可以继续我的方法是:

  1. 将所有图片框放入列表中,并为其分配状态BigSmall

  2. 为每个图片框写一个OnClick,以更改点击的图片框的状态。

  3. 每个OnClick然后调用一个辅助函数,它遍历列表中的每个图片框并隐藏小图片和DockStyle.Fill大图片。

  4. 上述算法能否满足您的需求?

答案 1 :(得分:2)

在每个图片框的onclick事件中(他们都可以指向同样的方法)

picturebox_Click(object sender .....)
{
    PictureBox pb= (PictureBox)sender;
    if (pb.dock==DockStyle.None)
        {
            pb.dock=DockStyle.Fill;
            pb.BringToFront();
        } 
    else
        pb.dock=DockStyle.None;
}

答案 2 :(得分:-1)

尝试这样的事情。代码没有重新考虑,但我相信你可以做到这一点

private bool isfill = false;

        private void pictureBox1_Click(object sender, EventArgs e)
        {
            if (!isfill)
            {
                pictureBox1.Dock = DockStyle.Fill;
                pictureBox2.Visible = false;
                isfill = true;
            }
            else
            {
                pictureBox1.Dock = DockStyle.None;
                pictureBox2.Visible = true;
                isfill = false;
            }
        }

        private void pictureBox2_Click(object sender, EventArgs e)
        {
            if (!isfill)
            {
                pictureBox2.Dock = DockStyle.Fill;
                isfill = true;
                pictureBox1.Visible = false;
            }
            else
            {
                pictureBox2.Dock = DockStyle.None;
                isfill = false;
                pictureBox1.Visible = true;
            }