gpt4 book ai didi

c# - 从继承的 UserControl 获取初始尺寸

转载 作者:行者123 更新时间:2023-11-30 22:48:47 29 4
gpt4 key购买 nike

我正在尝试创建一系列从自定义 UserControl 对象继承的 UserControl。我想要实现的关键行为之一是能够动态调整所有控件的大小以适应控件大小。

为此,我需要获取控件的初始宽度和高度,以便将其与调整后的尺寸进行比较。在我继承的控件中,我可以在 InitializeComponent() 调用之后将代码放入构造函数中以获取尺寸。有什么方法可以从基本目标代码中做到这一点吗?

此外,如果有更好的方法来执行此操作,我愿意接受建议。

最佳答案

我最终使用基本控件的尺寸作为所有继承控件的固定尺寸。通过重写 SetBoundsCore() 方法可以很容易地做到这一点:

public partial class BaseControl : UserControl
{
private int _defaultWidth;
private int _defaultHeight;

public BaseControl()
{
InitializeComponent();

_defaultWidth = this.Width;
_defaultHeight = this.Height;
}

protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
{
if (this.DesignMode)
{
width = _defaultWidth;
height = _defaultHeight;
}

base.SetBoundsCore(x, y, width, height, specified);
}
}

任何继承 BaseControl 的控件都会自动默认为其固定尺寸。

在运行时,我的调整大小代码根据新的宽度和高度与 _defaultWidth 和 _defaultHeight 成员计算调整大小比率。

关于c# - 从继承的 UserControl 获取初始尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1497881/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com