【问题标题】:Cannot move Labels无法移动标签
【发布时间】:2013-01-16 20:43:09
【问题描述】:

我在一个表格上有 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 个这样的矩形旁边?

【问题讨论】:

  • 这是 WinForms 还是 WPF?
  • 它在Form1中,不确定,但我认为它是WinForms。
  • SetBounds1 做我想做的事吗?
  • @User.1 不知道自己的项目是WinForms还是WPF?我们应该如何帮助您?
  • System.Windows.forms 所以 Windows 窗体

标签: c# winforms labels


【解决方案1】:

来自the documentation

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

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

【讨论】:

    猜你喜欢
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多