我已经尝试过winforms的位置,所以我采取了点击的一个addet的位置,例如25像素,并填写表格中的所有项目,并通过他们的位置检查。
但我不想在所有项目中循环...... 如果我知道它的名称whitout来遍历所有项目并检查他们的名字,我怎么才能得到这个项目..
我可以用这个: this.Controls [ “名称”];
好吧我的网格: p11 p12 p13 p21 p22 p23 p31 p32 p33
如果我点击p31我想在p31和p21改变一些东西,所以我需要对象p21
答案 0 :(得分:1)
要直接回答您的问题,您可以使用Find()
类的ControlCollection
方法。 e.g:
myForm.Controls.Find("panelX1Y2")
为了建议一个更好的方法,不要使用字符串来做这样的事情。这是hackish和马虎。
相反,在2D数组中初始化面板并使用数组索引查找正确的面板。
答案 1 :(得分:0)
首先,您可以通过继承Panel创建自己的类,并在位置的属性内部(而不是在面板名称中存储位置)。
然后,您可以创建对您的面板的引用集合。通过使用哈希表(或类似的东西),您可以通过某些ID访问面板,可以从x和y创建。
答案 2 :(得分:-1)
Dictionary<string, Panel> dcPanels = new Dictionary<string, Panel>();
dcPanels.Add("GridA", new Panel());
Panel p = dcPanels["GridA"];