目前,我的应用程序显示了6个图片框,每个图片框都显示正在不断更新的图片。
现在,我想要点击图片框延伸的任何图片框,并填满整个屏幕,只显示所选的图片框。
这可能吗?我必须创建另一个表单才能执行此操作吗?
先谢谢, Perumal
答案 0 :(得分:2)
没有看到任何代码,您可以通过以下方式在编辑时更改图片框。
pictureBox1.Dock = DockStyle.Fill
所以你需要创建一个on click事件处理程序并像上面一样调用你的图片框的Dock函数。
更新以回应评论
有DockStyle.None
可将照片还原为原始尺寸。
如果我理解正确,你想要有6张照片,然后当你点击一张它填充,再次点击,缩小,点击另一张,填充等等...
为此,您可以使用图片框上的Dock和Visible属性。现在看起来好像你要求如何来实际编写代码。好吧,如果你展示一些代码,我可以指点一点,没有什么可以继续我的方法是:
将所有图片框放入列表中,并为其分配状态Big
或Small
。
为每个图片框写一个OnClick,以更改点击的图片框的状态。
每个OnClick然后调用一个辅助函数,它遍历列表中的每个图片框并隐藏小图片和DockStyle.Fill大图片。
上述算法能否满足您的需求?
答案 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;
}