【问题标题】:Nested For Next loop issue. Graph using every member of results嵌套 For Next 循环问题。使用结果的每个成员绘制图表
【发布时间】:2026-02-03 20:50:01
【问题描述】:

我有 2 个For Next 循环用于将结果发送到Chart。但是,系列线很混乱。

我了解问题,但找不到解决方案。 Chart 显示所有点,但我需要将第一个迭代点匹配在一起,第二个迭代点匹配在一起......等等。

代码如下:

Dim i as integer
Dim n as integer
Dim speed as decimal
Dim horsepower as decimal

For i=1 to 30 Step 2
    For n=1 to 20 Step 1

        Dim power as label=CType(GroupBox1.Controls("Label"&n),Label)

        Dim txt as textbox=CType(Tabcontrolpanel1.Controls("TextBox"&i),Textbox)

        horsepower=Val(power.text)*3.14

        speed=Val(txt.Text)*3*5

        ChartControl1.Series("Series 1").Points.Add(New Seriespoint(horsepower, speed)

    Next

Next

我需要画 (x,y) (horsepower1,speed1),(horsepower2,speed2)...等。不是 (horsepower1,speed2), (horsepower1,speed3)

【问题讨论】:

  • 您的问题不清楚...“第一次迭代点”是什么意思
  • 例如;我需要绘制像 (1,1),(2,2) 这样的图表而不是 (1,2)(1,3)(1,4)
  • 它们不能全部匹配,因为您有 15 速文本框和 20 马力标签。
  • 但是当你有不同的循环大小时你怎么做......
  • 如果它是“方形”那么你只需要一个循环......

标签: arrays vb.net loops for-loop devexpress


【解决方案1】:

它们不能全部匹配,因为您有 15 速文本框和 20 马力标签。但是如果你想用前 15 个来做,你必须用一个循环来做。

For i=1 to 15

   Dim power as label=CType(GroupBox1.Controls("Label"&i),Label)
   Dim txt as textbox=CType(Tabcontrolpanel1.Controls("TextBox"&(i*2-1)),Textbox)

   horsepower=Val(power.text)*3.14
   speed=Val(txt.Text)*3*5

   ChartControl1.Series("Series 1").Points.Add(New Seriespoint(horsepower, speed)

Next

如果您有不同的起始索引,则必须将其保存在变量中。

' First matching index
Dim labelIndex As Integer = 1
Dim textboxIndex As Integer = 1

For i=1 to 15

   Dim power as label=CType(GroupBox1.Controls("Label"&labelIndex),Label)
   Dim txt as textbox=CType(Tabcontrolpanel1.Controls("TextBox"&textboxIndex),Textbox)

   horsepower=Val(power.text)*3.14
   speed=Val(txt.Text)*3*5

   ChartControl1.Series("Series 1").Points.Add(New Seriespoint(horsepower, speed)

   ' Go to the next matching index
   labelIndex += 1
   textboxIndex += 2
Next

【讨论】:

  • 如果label start label90等,我要做什么,我不能使用1 for loop
  • @Emrah 我在答案中添加了另一部分。您必须将 labelIndex 初始化为 90。如果您的标签到处都是,那么您需要找到另一种匹配它们的方法。将它们放在同一个面板中,或者数据网格的行中,或者有标签,......事实上你有 90 个名为 label{x} 的标签不是一个好主意。
  • 非常感谢the_lotus,我会试试的。
  • 能否请您看看下面的答案并帮助我?