C# 将picturebox添加到上一个
您好,我正在用c#在vs中工作。我正在尝试创建一个算法,当单击按钮时,该算法会将一个已经存在的随机图片框添加到上一个图片框中。但我不知道如何创建它。我的意思是,我在屏幕上有一个示例图片框,当我单击按钮时,第二个PictureBox应该转到pictureBox1.Top-90,因为PictureBox是90x90,当再次单击按钮时,第三个转到第二个PictureBox的顶部 这就是我现在拥有的,当我单击按钮时,新图片框每次都会添加到第一个图片框的前90位X1:C# 将picturebox添加到上一个,c#,visual-studio,C#,Visual Studio,您好,我正在用c#在vs中工作。我正在尝试创建一个算法,当单击按钮时,该算法会将一个已经存在的随机图片框添加到上一个图片框中。但我不知道如何创建它。我的意思是,我在屏幕上有一个示例图片框,当我单击按钮时,第二个PictureBox应该转到pictureBox1.Top-90,因为PictureBox是90x90,当再次单击按钮时,第三个转到第二个PictureBox的顶部 这就是我现在拥有的,当我单击按钮时,新图片框每次都会添加到第一个图片框的前90位X1: public partial cla
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public static Random rand = new Random();
private void button1_Click_1(object sender, EventArgs e)
{
int box = rand.Next(1, 4);
if (box == 1)
{ pictureBox2.Top = pictureBox1.Top - 90; }
if (box == 2)
{ pictureBox3.Top = pictureBox1.Top - 90; }
if (box == 3)
{ pictureBox4.Top = pictureBox1.Top - 90; }
}
}
试试这个:
PictureBox _lastAddedPictureBox;
List<int> _notAddedBoxes = new List<int> {1,2,3};
private void button1_Click_1(object sender, EventArgs e)
{
if(_lastAddedPictureBox == null)
{
// if we assumed that pictureBox1 has been already added to the right location.
_lastAddedPictureBox = pictureBox1;
}
int index = rand.Next(0, _notAddedBoxes.Count - 1);
int box = _notAddedBoxes[index];
if (box == 1)
{
pictureBox2.Top = _lastAddedPictureBox.Top - 90;
_lastAddedPictureBox = pictureBox2;
}
if (box == 2)
{
pictureBox3.Top = _lastAddedPictureBox.Top - 90;
_lastAddedPictureBox = pictureBox3;
}
if (box == 3)
{
pictureBox4.Top = _lastAddedPictureBox.Top - 90;
_lastAddedPictureBox = pictureBox4;
}
// if we assume that you don't want to keep moving what has been already added.
_notAddedBoxes.RemoveAt(index);
}
PictureBox\u最新添加的图片框;
列表_notaddedbox=新列表{1,2,3};
私有无效按钮1\u单击\u 1(对象发送者,事件参数e)
{
如果(_lastAddedPictureBox==null)
{
//如果我们假设pictureBox1已经添加到正确的位置。
_lastAddedPictureBox=pictureBox1;
}
int index=rand.Next(0,_notadedboxes.Count-1);
整数框=_notadedboxes[索引];
如果(框==1)
{
pictureBox2.Top=\u lastAddedPictureBox.Top-90;
_lastAddedPictureBox=pictureBox2;
}
如果(框==2)
{
pictureBox3.Top=_lastAddedPictureBox.Top-90;
_lastAddedPictureBox=pictureBox3;
}
如果(框==3)
{
pictureBox4.Top=\u lastAddedPictureBox.Top-90;
_lastAddedPictureBox=pictureBox4;
}
//如果我们假设您不想继续移动已添加的内容。
_标记的框。移除(索引);
}
很难猜出目的是什么。描述你想要完成的任务,而不是谈论那些肯定不能完成你想要完成的任务的代码。我解释过,我有4个picturebox,点击按钮时,下一个picturebox等于上一个picturebox。top-90px,仅此而已。嘿,如果你能帮忙,我还有一个问题。现在如果我点击按钮,4次之后,PictureBoxs将不再添加。但是我该怎么做?要在每次单击按钮时(无限次)添加PictureBoxs吗?谢谢