我在表格上有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个这样的矩形旁边吗?
答案 0 :(得分:1)
因为
Size
类是Visual Basic中的值类型(Structure
,Visual C#中的struct
),所以它是按值返回的,这意味着访问该属性会返回一个控件的大小。因此,调整从此属性返回的Size的Width或Height属性不会影响控件的Width或Height。要调整控件的宽度或高度,必须设置控件的“宽度”或“高度”属性,或者使用新的“大小”设置“大小”属性。
编辑: Here是Label类,可能是此类的一个很好的参考点。