Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过单击按钮使图片框可见_C# - Fatal编程技术网

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

C# 如何通过单击按钮使图片框可见,c#,C#,我有3个不可见的图片框。我想设置它,这样当我点击按钮时,它会显示第一个图片框,当我再次点击按钮时,它会显示第二个图片框,第三个相同。我不想同时显示所有3个图片框。一次一个。我将在这里使用WinForms,因为PictureBox是WinForms的一部分。这是一个可能的答案: 在Form.cs中,只需写/添加以下内容: int count = 0; private void button1_Click(object sender, EventArgs e) { if (count ==

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

我将在这里使用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;
    }
}
希望,这有帮助

编辑: 如果要获得以下行为:

  • 第一次单击按钮:出现第一个picturebox
  • 第二次单击按钮:第一个picturebox消失,第二个picturebox出现
  • 第三次单击按钮:第二个picturebox消失,第三个picturebox出现
  • 第四次单击按钮:第三个picturebox消失,第一个picturebox出现
然后改用以下代码:

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;
        }
    }
这有用吗

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

示例#1
使用系统;
使用System.Collections.Generic;
使用系统组件模型;
使用系统数据;
使用系统图;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Windows.Forms;
命名空间WindowsFormsApp1
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
picturboxArray=Controls.OfType().Reverse().ToArray();
}
私有整数计数=0;
PictureBox[]PictureBox数组;
公共整数计数
{
获取{返回计数;}
设置
{
如果(值>2)
计数=0;
其他的
计数=数值;
}
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
PictureBoxHandle(计数);
计数++;
}
公共void PictureBoxHandle(int索引)
{
foreach(此.Controls中的控件X)
{
if(X是PictureBox)
{
X.可见=假;
}
}
picturboxArray[index].Visible=true;
}
}
}

您使用的是什么UI框架/体系结构?WPF MVVM?如果你还没有尝试过任何东西和/或没有代码,那么这篇文章还为时过早。请阅读并采取行动
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;
        }
    }
}