Control.GetPreferredSize 方法的目的是什么?

2024-01-19

我正在努力实现一个用户控件,该控件根据某些属性更改其大小。据我了解,winforms 布局引擎在执行布局时会询问每个子控件的首选大小,并告知它们可以承受的最大大小。

这是一个描述获取首选尺寸 http://msdn.microsoft.com/en-us/library/system.windows.forms.control.getpreferredsize.aspx在msdn中:

Control.GetPreferredSize(Size proposedSize)

检索可以安装控件的矩形区域的大小。

我对以下内容感到困惑:

您可以返回比实际尺寸更大的尺寸 中指出的约束条件 suggestSize 参数,但是 提议的大小应该随着 约束减少。

这是什么意思?如果我退回的尺寸大于建议的尺寸会怎样?

有人可以解释一下这是如何工作的吗?


该行的含义是您可以自由返回比实际尺寸更大的首选尺寸proposedSize参数,但是proposedSize应该仍然会影响您的首选尺寸。例如,您返回的尺寸为GetPreferredSize(new Size(100, 0)应该小于返回的大小GetPreferredSize(new Size(200, 0)).

请注意,如果您返回更大的尺寸,不会发生任何不良情况;布局引擎将为您整理所有内容,可能是通过减少其他控件可用的大小。最终,您的首选大小只是引擎的一个提示,以便它知道它正在排列的各种 UI 组件的相对空间需求是什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Control.GetPreferredSize 方法的目的是什么? 的相关文章

  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问

随机推荐

  • 多个 CALayers 动画 - 填充模式

    我将屏幕分成小块 然后为每个块设置动画以执行转换 for int x 0 x
  • javascript能区分左移键和右移键吗?

    大多数情况下 这是一个健全性检查 两个 Shift 键的键码都是 16 这是否意味着浏览器中实际上无法区分左移和右移事件 在较新的浏览器中支持DOM3您可以使用event location检查位置 In DOM3 规范 http www w
  • 安装和导入 SendKeys 时出现问题 -- 更新

    我正在尝试安装适用于 Python 的 SendKeys If I use pip install SendKeys 我收到链接错误 sendkeys c 150 warning C4013 Py InitModule undefined
  • 如何在 TypeScript 中使用回调正确处理 let-variables?

    在使用 TypeScript 期间 我对一种常见的 JavaScript 模式有点挣扎 是关于 声明一些 let 变量而不为其设置任何初始值 在某个回调中将此值设置为变量 执行回调后使用此变量 这是代码示例 const wait cb Fu
  • 最小值应匹配过滤查询

    是否可以有这样的查询 query filtered filter terms names Anna Mark Joe execution and 随着 minimum should match 2 陈述 我知道我可以使用一个简单的查询 我已
  • t-sql 求和时间戳之间的差异

    我正在跟踪机器状态 可以是 0 1 和 2 并将该数据与 time stamp 一起存储在 SQL 表中 我在 sql server 中有一个表 其中包含下一个字段 id 整数 时间戳 日期时间 机器状态 int 机器状态与机器状态相关 m
  • ST_MAKELINE 丢弃重复点,即使不连续

    考虑这个简化的例子 SELECT ST MAKELINE ST GEOGPOINT 5 51 ST GEOGPOINT 5 52 ST GEOGPOINT 5 51 我希望这能构建一条包含三个点的线 并在自身上加倍 相反 我得到的是 LIN
  • Django - Ajax 注册

    我正在尝试允许注册 使用此django registration register http docs b list org django registration 0 8 views html registration views reg
  • 应用程序服务器是否为同一用户的每个请求创建新线程?

    这是一个简单的场景 用户从 Web 应用程序的网页触发某些操作 这项手术是一项繁重的手术 需要更多的时间 在服务器端完成操作之前 用户触发使用一些不同参数的相同操作 因此第二个请求的第二个操作也将开始处理 那么在这种情况下 是否有两个不同的
  • 如何避免 jq 截断长小数

    如何防止 jq 截断长十进制值 例如 echo 18302628978110292481 jq 结果 18302628978110292000 Javascript 不支持这么大的数字 所以也不支持jq 整数大小是2 53 Check th
  • 我们如何在 Angularjs 指令之外使用 $compile

    我想用 compile在函数内的控制器中而不是在指令中 是否可以 我正在尝试下面的代码 compile div Cancel div scope 但这会抛出范围未定义的错误 我试图通过 scope在函数内部 但它不起作用 Angular 如
  • 为什么 Docker 中的 pg_restore 出现段错误?

    我正在 docker 容器内测试 postgres 数据库的备份 恢复过程 我像这样转储我的数据库 docker exec ti my postgres container pg dump Fc U postgres gt db dump
  • d3.js:限制画笔大小

    有没有办法限制画笔的大小 即使范围更大 我制作了一个只有 x 刻度的画笔 可以移动和调整大小 我希望能够限制用户调整大小的范围 基本上仅限于某个点 在以下示例中 当画笔大于最大范围的一半时 画笔函数停止更新 不过 刷子本身仍然可以延长 有没
  • 文本区域的 ngModel 无法在 Angular 2 中工作

    我正在尝试使用在文本区域中打印 json 对象ngModel 我做了以下工作
  • 无法在动态链接库 sfml-graphics-2.dll 中定位过程入口点 _ZSt24__ throw_out_of_range_fmtPKcz

    今天我决定下载 安装并尝试使用 SFML 2 2 我还使用 MinGW 编译器下载了 Code Blocks 我设置了所有内容并正确安装了所有内容 或者我是这么认为的 并尝试运行示例代码以查看它是否有效 include
  • 无法将 Base64 编码的图像添加到 vCard

    我已成功使用 Perl 通过 Embperl 为员工创建动态生成的 vCard 填充除照片之外的所有字段 无论如何我都无法让它发挥作用 生成无照片 vCard 的代码工作正常 根据我在网上找到的信息 图片must在 vCard 本身中进行
  • 使用camelot从PDF中提取表格数据时,未从PDF中提取标题

    我使用camelot进行表数据提取 但是标题没有被提取为PDF的一部分 连接目标 下面的PDF链接和目标表格位于第3页和第4页 需要提取 https drive google com file d 1xniTIwpnNIdA k4xvEAR
  • 将新组件添加到 Rcpp 中的 DatetimeVector

    如果有人可以帮助我将新组件推回到DatetimeVector A DatetimeVector只有开始 结束 getDatetimes和尺寸方法 我想说不要 出于多种原因 AllRcpp 类型使用底层SEXP这需要连续的内存 因此添加单个元
  • 有哪些技术或工具可用于分析 C/C++ 应用程序中过大的代码大小?

    我有一个 C 库 它生成的代码比我真正期望的要大得多 从不到 50K 行的源代码中 我获得了几乎 4 MB 的共享对象和推动 9 的静态存档 这是有问题的 因为库二进制文件非常大 而且更糟糕的是 即使是链接到它的简单应用程序通常也会获得 5
  • Control.GetPreferredSize 方法的目的是什么?

    我正在努力实现一个用户控件 该控件根据某些属性更改其大小 据我了解 winforms 布局引擎在执行布局时会询问每个子控件的首选大小 并告知它们可以承受的最大大小 这是一个描述获取首选尺寸 http msdn microsoft com e