Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.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#_Winforms - Fatal编程技术网

C# 如何创建已单击控件的列表?

C# 如何创建已单击控件的列表?,c#,winforms,C#,Winforms,我一直试图制作一个包含3个picturebox控件(picturebox1、2和3)的列表,但未成功;列表需要有第二个参数true或false。如果单击一个picturebox,则bool为True,其他为False。该列表应类似于以下内容: pictureBox2, true pictureBox1, false pictureBox3, false 现在,当我按下按钮时,我希望单击的pictureBox位于列表的底部。 我一直在尝试编写代码,这样只有错误的图片框才会被吸引到面板上。这意

我一直试图制作一个包含3个picturebox控件(picturebox1、2和3)的列表,但未成功;列表需要有第二个参数true或false。如果单击一个picturebox,则bool为True,其他为False。该列表应类似于以下内容:

pictureBox2, true

pictureBox1, false

pictureBox3, false
现在,当我按下按钮时,我希望单击的pictureBox位于列表的底部。 我一直在尝试编写代码,这样只有错误的图片框才会被吸引到面板上。这意味着“pictureBox1首先被绘制,然后是pictureBox3

e.Graphics.DrawImage(< pictureBox >!true, new Rectangle(< pictureBox >!true.Location, < pictureBox >!true.Size));
e.Graphics.DrawImage(!true,新矩形(!true.Location,!true.Size));

我一点也不知道该怎么写这个列表或画法。非常感谢您的帮助。

您的绘画方法应该是这样的:

int Y = 0;
foreach(PictureBox pb in MyList)
{
    if(!pb.Visible)
    {
        e.Graphics.DrawImage(pb.BackgroundImage, new Point(0,Y));
        Y += pb.Height;
    }
}

我对那个密码非常好奇<代码>!true-这不是更好地表示为
false
<代码>!是的。大小-这到底是什么?老兄,我不知道这张“列表”是按代码还是你想画这些图像。。。你能解释清楚一点吗?到目前为止,你做了什么?是的,这只是一个假设的例子,大卫。这没有道理。实际的编码方式是我所困惑的。安德烈,我想画出控件的背景图像,这些图像是假的。该列表用于安排向配电盘抽签的顺序。我希望我向betterAlex解释过,当图片框不可见时,我需要在面板上绘制图片框。这个方法可以工作,但我不能在我的应用程序中使用它。我需要一份名单是的,亚历克斯。当我单击一个pictureBox时,其他pictureBox将变为不可见并被绘制到面板上。但它们只会以一种方式绘制。如果(pictureBox1.Visible=false){e.Graphics.DrawImage(pictureBox1.BackgroundImage,新矩形(pictureBox1.Location,pictureBox1.Size));}则如果pictureBox2不可见,则绘制它。看,它是从第一个到最后一个被画出来的,但是如果我改变了画的顺序,那么画的顺序就不会改变。我希望上面的评论不会像听起来那么混乱lol@kev你需要做自己的布局,而不是使用PB的位置。我更改了代码,按照图像在MyList中的显示顺序绘制图像,从Y=0开始,向下移动到PB的高度。谢谢。我知道我之前一定很困惑。列表代码应该是这样的吗?:list MyList=new list();MyList.Add(pictureBox1);MyList.Add(pictureBox2);MyList.Add(pictureBox3);