如何通过单击按钮使图片框可见

时间:2018-01-07 17:33:10

标签: c#

我有3个不可见的图片框。我想设置它,所以当我点击按钮它显示第一个图片框时,当我再次点击按钮它将显示第二个和第三个相同。我不想一次显示所有3个图片框。一次一个。

2 个答案:

答案 0 :(得分:0)

我将在这里使用WinForms,因为PictureBox是WinForms的一部分。这是一个可能的答案:

在Form.cs中只需编写/添加:

int count = 0;

private void button1_Click(object sender, EventArgs e)
{
    if (count == 0)
    {
        //Make PictureBox1 visible
        pictureBox1.Visible = true;
        count++;
    }
    else if (count == 1)
    {
        //Make PictureBox visible
        pictureBox2.Visible = true;
        count++;
    }
    else if (count == 2)
    {
        //Make PictureBox3 visible
        pictureBox3.Visible = true;
        count++;
    }
    else if (count == 3)
    {
        //Hide all PictureBoxes again
        pictureBox1.Visible = false;
        pictureBox2.Visible = false;
        pictureBox3.Visible = false;
        count = 0;
    }
}

希望,这有帮助吗?!

编辑: 如果您想获得以下行为:

    第一次点击
  • 按钮:出现第一个图片框
  • 按钮第二次点击:第一个图片框消失,第二个图片框出现
  • 按钮第三次点击:第二个图片框消失,第三个图片框出现
  • 按钮第四次点击:第三个图片框消失,第一个图片框出现

然后使用此代码:

int count = 0;

    private void button1_Click(object sender, EventArgs e)
    {
        if (count == 0)
        {
            //Make PictureBox1 visible
            pictureBox1.Visible = true;
            pictureBox2.Visible = false;
            pictureBox3.Visible = false;
            count++;
        }
        else if (count == 1)
        {
            //Make PictureBox2 visible
            pictureBox2.Visible = true;
            pictureBox1.Visible = false;
            pictureBox3.Visible = false;
            count++;
        }
        else if (count == 2)
        {
            //Make PictureBox3 visible
            pictureBox3.Visible = true;
            pictureBox1.Visible = false;
            pictureBox2.Visible = false;
            count = 0;
        }
    }

这有帮助吗?!

答案 1 :(得分:0)

有很多解决方案:)可能很复杂:p

示例#1

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            picturboxArray = Controls.OfType<PictureBox>().Reverse().ToArray();
        }
        private int count = 0;
        PictureBox[] picturboxArray;
        public int Count
        {
            get { return count; }
            set
            {
                if (value > 2)
                    count = 0;
                else
                    count = value;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            PictureBoxHandle(count);
            Count++;
        }
        public void PictureBoxHandle(int index)
        {
            foreach (Control X in this.Controls)
            {
                if (X is PictureBox)
                {
                    X.Visible = false;
                }
            }
            picturboxArray[index].Visible = true;
        }
    }
}