标签:c visual-studio winforms picturebox visual-c-express-2010
在这个程序即时编写我使用一个函数来创建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”的PictureBox.我想改变创建的第二个Picture Box的位置,我该怎么做呢.
解决方法:
1)你可以给每个PictureBox一个不同的名字(可能是“cardBack”ID_in_int)
int picBox_ID = 1;
public void serverCard()
{
PictureBox cardBack = new PictureBox();
cardBack.Name = "cardBack" + picBox_ID;
picBox_ID++;
并按名称将它们从控件中拉出:
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.您仍然可以将图片框放入控件中,并根据需要过滤集合.
标签:c,visual-studio,winforms,picturebox,visual-c-express-2010 来源: https://codeday.me/bug/20190608/1196410.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。