C# 如何在For循环内创建标签 private ArrayList label=新的ArrayList(30); Label Label_class=新标签(); 随机r=新随机(); for(int i=0;i
此for循环位于C# 如何在For循环内创建标签 private ArrayList label=新的ArrayList(30); Label Label_class=新标签(); 随机r=新随机(); for(int i=0;i,c#,C#,此for循环位于Form1\u Load内,以便在加载表单时运行。。 问题是,当我中断点时,我看到forloop中的代码没有被中断点注意到/没有运行。这是为什么??如何在form1(窗口窗体)行中随机创建多个标签 private ArrayList label= new ArrayList(30); Label label_class = new Label(); Random r = new Random(); for (int i = 0; i < label.Count; i++
Form1\u Load
内,以便在加载表单时运行。。
问题是,当我中断点时,我看到forloop中的代码没有被中断点注意到/没有运行。这是为什么??如何在form1(窗口窗体)
行中随机创建多个标签
private ArrayList label= new ArrayList(30);
Label label_class = new Label();
Random r = new Random();
for (int i = 0; i < label.Count; i++) {
((Label)label[i]).Location = new Point(r.Next(ClientRectangle.Right -10),
r.Next(ClientRectangle.Bottom - 10));
((Label)label[i]).Text = "o";
((Label)label[i]).Click += new EventHandler(Form1_Load);
this.Controls.Add((Label)label[i]);
((Label)label[i]).Show();
}
不创建包含30项的ArrayList。它构造了一个初始容量为30的ArrayList,但仍然没有项(请参见文档)。for
循环未运行,因为label.Count
为零
考虑将其更改为
private ArrayList label= new ArrayList(30);
private ArrayList label= new ArrayList(30);
private ArrayList label=new ArrayList();
对于(inti=0;i<30;i++)标签。添加(新标签(…);
接下来是代码的其余部分。这里有两个问题:
private ArrayList label = new ArrayList();
for (int i = 0; i < 30; i++) label.Add(new Label(...));
私有列表标签=新列表();
你可以阻止到处都是丑陋的演员。您需要更改标签。计数也改为30
其次,未命中断点几乎总是调试信息与代码不同步的迹象,或者调试器找不到PDB(调试信息)文件
确保您正在使用调试生成。请查看以下内容:
另请参阅我的博客,查看在告诉VS加载您的PDB文件一节中是否加载了符号(如果clean等不适用于您的解决方案,但它应该!)
这个问题正在讨论中
private List<Label> label= new List<Label>();
这将创建一个大小为30的ArrayList
,而不是一个包含30个元素的列表
如果你这样做
private ArrayList label= new ArrayList(30);
private ArrayList label= new ArrayList(30);
列表标签=新列表();
对于(int i=0;i<30;i++){
var temp=新标签();
温度位置=新点(右下一个(ClientRectangle.Right-10),
r、 接下来(ClientRectangle.Bottom-10));
temp.Text=“o”;
temp.Click+=新事件处理程序(Form1_Load);
temp.BackColor=System.Drawing.Color.White;
此.Controls.Add(temp);
temp.Show();
标签。添加(临时)
}
它应该会起作用
此外,请注意我使用的是
List
而不是ArrayList
,在某些情况下,您希望能够指定要取出的对象,但通常(在本例中)指定类型的通用表单会确保您做得更好。您将不需要执行所有正在执行的装箱操作,您将编写更少的代码行,所有这些代码都将更具可读性。忘记提出问题了。。。。私有ArrayList标签=新ArrayList(30);分数=新分数();Label Label_class=新标签();随机r=新随机();编辑您的问题并将代码放入其中。。。然后单击{}按钮以正确格式化代码。什么是var??无论如何,它起作用了!现在我来弄清楚它是怎么工作的!塔克斯·马门!嗯,我怎样才能使所有标签的背景色都变成白色?我正在尝试制作一款没有AI鬼魂的吃豆人游戏,这是C#3.0中添加的一项功能,它允许编译器为您确定变量的类型,而不是您指定它。当类型很明显时,比如在本例中,它有助于使代码可读性和可扩展性