gpt4 book ai didi

c# - 访问 Winform 控件的特定实例

转载 作者:太空狗 更新时间:2023-10-30 01:00:31 25 4
gpt4 key购买 nike

在我编写的这个程序中,我使用一个函数来创建 PictureBox 的多个实例。这是代码:

public void serverCard()
{
//Definitions
PictureBox cardBack = new PictureBox();

//Specifics for card
cardBack.Size = new Size(cardSizeX, cardSizeY);
cardBack.BackColor = Color.White;
cardBack.Left = startX;
cardBack.Top = startY;

serverArea.Controls.Add(cardBack);

//differences in pos
startX += cardBack.Width + 5;
if (startX > this.Width - cardSizeX)
{
startY += cardBack.Height + 5;
startX = 5;
}
}

我将如何访问 PictureBox 的特定实例。例如:我使用此函数创建了 5 个名为“cardBack”的图片框。我想更改创建的第二个图片框的位置,我该怎么做。

最佳答案

1) 你可以给每个 PictureBox不同的名称(可能是 "cardBack" + ID_in_int )

int picBox_ID = 1;
public void serverCard()
{
PictureBox cardBack = new PictureBox();
cardBack.Name = "cardBack" + picBox_ID;
picBox_ID++;

并将它们从 Controls 中拉出来按名称:

PictureBox temp = serverArea.Controls.OfType<PictureBox>().FirstOrDefault(x=>x.Name == "cardBack2");

2) 或者你可以有一个单独的类型集合:List<PictureBox>您将在哪里额外存储它们

List<PictureBox> picCollection = new List<PictureBox>();
public void serverCard()
{
PictureBox cardBack = new PictureBox();
picCollection.Add(cardBack);

并以您想要的方式访问它们。可能对订单感兴趣。

3) 另一种可能性是创建一个新类,该类的属性类型为 PictureBox和另一个属性int ID .你可以有一个充满这些对象的集合,每个对象可以有一个唯一的 ID 和相应的 PictureBox .您仍然可以将图片框放入 Controls并根据您的需要过滤集合。

关于c# - 访问 Winform 控件的特定实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45418086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com