无法移动标签

时间:2013-01-16 20:43:09

标签: c# winforms labels

我在表格上有20张图表;它们是宽矩形。所以现在我需要在图表旁边放一个原始数字。我将更改此数字,而图形例程绘制一条描绘它的线。

我需要这样做20次;每个频道一个。用户选择矩形的位置(通过一些NumericUpDown控件)。

结果,20个图形的20个矩形将位于20个不同的位置;通常一致,但仍然可变。我处理了五个整数;即,X_start, Y_start, Height, Width, Spacing

我的第一个想法是制作20个标签,将它们放在图表旁边,然后更改其中的文字。

我读到了制作标签数组here

然后我试着像这样编码...

for (int i = 0; i < 20; i++)
{
    RawNumberLabels[i].Text = "0";
    RawNumberLabels[i].Location.X = RawNumberLabel_x;  // error 
}

错误说.. Cannot modify (blah blah blah "Location.X") because it is not a variable.

所以我尝试了这个:

Point RawXY = new Point((int)RawNumberLabel_x, Y_Pos);

for (int i = 0; i < 20; i++)
{
     RawNumberLabels[i].Text = "0";
     RawNumberLabels[i].Location.Offset(RawXY);   // fixes that one

     // Then  this next line is all full of fail
     RawNumberLabels[i].Size.Width = (int)UpDownsFromTheUser.Starting_RawNumberWidth;  

现在我无法更改Size.Width,因为它不是变量。

好的,那么如何在屏幕上的20个其他矩形旁边放置20个标签,这样它们的X,Y,高度和宽度与那20个其他矩形的X,Y和高度整齐地吻合?

更好的是,有更好的方法可以将20个原始数字放在20个这样的矩形旁边吗?

1 个答案:

答案 0 :(得分:1)

来自the documentation

  

因为Size类是Visual Basic中的值类型(Structure,Visual C#中的struct),所以它是按值返回的,这意味着访问该属性会返回一个控件的大小。因此,调整从此属性返回的Size的Width或Height属性不会影响控件的Width或Height。要调整控件的宽度或高度,必须设置控件的“宽度”或“高度”属性,或者使用新的“大小”设置“大小”属性。

编辑: Here是Label类,可能是此类的一个很好的参考点。