如何将图片框展开为另一种形式
本文关键字:另一种 | 更新日期: 2023-09-27 18:35:46
目前,我的应用程序显示 6 个图片框,每个图片框显示一张不断更新的图片。
现在,我想在单击任何图片框时,该图片框扩展并填满整个屏幕,仅显示所选的图片框。
这可能吗?我必须创建另一个表单来执行此操作吗?
提前致谢,佩鲁马尔
在每个
图片框的 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;
}
没有看到任何代码,下面介绍了如何在单击时以编程方式更改图片框。
pictureBox1.Dock = DockStyle.Fill
因此,您需要创建一个单击事件处理程序,并像上面一样调用图片框的 Dock 函数。
更新以响应评论
有一个DockStyle.None
可以将图片恢复为原始大小。
如果我理解正确,您想要有 6 张图片,然后当您单击一张图片时,它会填充、再次单击、缩小、单击另一张、填充等......
为此,您将使用图片框上的"停靠"和"可见"属性。现在,您似乎也在询问如何实际编写代码。好吧,如果你展示一些代码,我可以给出一些指示,没有什么可以继续我的方式
:将所有图片框放在一个列表中,并
Big
或Small
为它们分配状态。为每个图片框编写 OnClick 以更改所单击图片框的状态。
然后,每个 OnClick 都会调用一个帮助程序函数,该函数循环访问列表中的每个图片框并隐藏小图片框和 DockStyle.Fill 大图片框。
上述算法是否满足了您的需求?
尝试这样的事情。 代码没有被重构,但我相信你可以这样做
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;
}