【问题标题】:What is the difference between control's bounds and setting X,Y,Width,Height of a control?控件的边界和设置控件的 X,Y,Width,Height 有什么区别?
【发布时间】:2013-03-05 19:02:19
【问题描述】:

所以,假设我在 winform 上有一个面板,我希望它显示在特定点,并且应该在 winform 上具有特定的宽度和高度。另外,我想在运行时进行。

那么,移动和设置面板尺寸的区别和正确方法是什么?

这边:

Panel1.bounds.X:=10;
Panel1.bounds.Y:=10;
Panel1.bounds.width:=100;
Panel1.bounds.height:=103;

或者这样:

Panel1.Left := 10;
Panel1.Top := 10;
Panel1.width:=100;
Panel1.height:=103;

或者两种方式对panel1的效果应该是一样的。

我正试图弄清楚我的程序到底出了什么问题...尽管我已经针对我的问题提出了一个特定的问题,但没有人试图回答甚至可以发表评论。所以,我在问一些问题来理解我的问题。

【问题讨论】:

  • 如果你指的是this question,我无法回答或评论它,因为我什至无法模糊猜测你在问什么。 (就像之前的版本一样,它使用了相同的图像,但也令人困惑并且没有得到回答,我认为。)这个更清晰,实际上让你清楚地知道你在问什么。也许对前一个进行编辑以使其更清晰也可以为您提供答案。 :-)

标签: .net panel bounds oxygene


【解决方案1】:

如果你想设置Bounds,你需要用一个矩形来做。 (请原谅我的示例中的任何语法错误;我的 Delphi 有点生疏。)

BoundsRect: Rectangle;
BoundsRect.X = 10;
BoundsRect.Y = 10;
BoundsRect.Width := 100;
BoundsRect.Height := 103;
Panel1.Bounds := BoundsRect;

通常,如果您想设置或更改多个属性,您会使用它。如果只想设置一两个属性,可以使用WidthTop等。

另一个区别是,每次设置这些属性之一(Bounds,或单个属性之一)时,都会在幕后进行大量工作(移动和重绘窗口等)。从矩形设置Bounds 属性会少一些工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-10
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2015-11-16
    • 1970-01-01
    • 2014-02-23
    相关资源
    最近更新 更多