Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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#_.net_Winforms - Fatal编程技术网

C# 是否使用整数访问表单成员?

C# 是否使用整数访问表单成员?,c#,.net,winforms,C#,.net,Winforms,理论上,从面向对象的角度来看,我试图完成的整个事情是愚蠢的,但我必须这样做 这是我正在做的一个在线游戏。客户有一个物品清单,你知道,虚拟物品。 服务器发送项目及其在库存中的相应位置 这就是我的清单的样子: 我有62个面板(每个面板代表库存中的房间) 我的问题是:当我整理虚拟项目和它们应该放置在的相应插槽时,我必须在表单上绘制它们 理论上,如果我在位置4收到项目“C:\a.bmp”,如何将panel4.image设置为与图像相等 这就是我想做的: var data = new byte[6]; .

理论上,从面向对象的角度来看,我试图完成的整个事情是愚蠢的,但我必须这样做

这是我正在做的一个在线游戏。客户有一个物品清单,你知道,虚拟物品。 服务器发送项目及其在库存中的相应位置

这就是我的清单的样子:

我有62个面板(每个面板代表库存中的房间)

我的问题是:当我整理虚拟项目和它们应该放置在的相应插槽时,我必须在表单上绘制它们

理论上,如果我在位置4收到项目“C:\a.bmp”,如何将panel4.image设置为与图像相等

这就是我想做的:

var data = new byte[6];
... //we receive a packet,data is our buffer
var position = data[4];
Form1.panel + position + .backgroundImage = "bla bla.jpg";

如何像那样调用面板?

将它们转换为一个数组,而不是62个单独的变量。然后您可以使用:

Form1.panels[position].BackgroundImage = "...";

但是,没有任何设计器支持(我知道),您是否在设计器中创建了所有这些面板?如果你可以用编程的方式来做,你的生活会变得更轻松(IMO)。

他们总是告诉我这些,我总是忘记这个小小的解决方案。再次感谢Jon!我应该创建另一个数组并手动添加它们,还是编辑Designer.cs?我以前从未尝试过这样做。我会亲自从设计器中删除它们,并将它们添加到您的代码中。如果你有那么多的面板,有没有一些公式可以计算出大多数面板的大小和位置?(例如,它基本上是一个网格吗?)。