不能移动标签

本文关键字:标签 移动 不能 | 更新日期: 2023-09-27 17:54:10

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

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

结果,容纳20个图形的20个矩形将位于20个不同的位置;大体一致,但仍有变数。我用5个int来处理这个;即X_start, Y_start, Height, Width, Spacing .

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

我在这里读到关于创建标签数组的内容

然后我试着这样编码…

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个矩形旁边?

不能移动标签

来自文档:

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

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