【问题标题】:Is there a way to set a certain property for all controls in a form at once in the Designer?有没有办法在设计器中一次为表单中的所有控件设置某个属性?
【发布时间】:2018-10-07 04:44:01
【问题描述】:

我想一次设置主窗体中所有控件的某个属性 (Anchor)。 大约有 100 个控件,我真的不想手动更改每个控件的此属性。

我知道我可以通过输入 Ctrl + A 一次选择所有可用的控件。然后出现的问题是我想要更改的所需属性在“属性”窗口中不可见。通常它应该是可见的,因为所有控件都是Control 的类型,不是吗?

我也知道我可以这样做:

foreach(Control ctrl in myForm.Controls)
{
   ctrl.Anchor = AnchorStyle.Bottom;
}

但我想知道是否有一种使用设计器的方法。有吗?

【问题讨论】:

  • 什么是strg + A?你的意思是 Ctrl-A?
  • 我不得不做类似的事情(使用 Font 属性),发现最简单的方法是直接编辑 .Designer.cs 文件并复制/粘贴所需的值
  • @Jazimov 德语键盘,抱歉...
  • 啊!现在我知道了以供将来参考-谢谢!

标签: c# winforms properties designer anchorpoint


【解决方案1】:

您可以多选表单上的所有控件并在属性网格中查看 Anchor 属性。当您在选择多个控件的情况下对其进行编辑时,每个选定的控件都将设置为您指定的 Anchor 值。

但要小心使用 Ctrl-A——它将选择可视控件以及非可视组件。因此,如果您的表单上有任何未在表单的客户区域呈现的组件(例如 Timer 或 FolderBrowserDialog 表单组件),Ctrl-A 将继续显示公共属性——但因为这些组件不如果没有 Anchor 属性,则不会出现 Anchor 属性。选择表单上的多个控件时唯一显示的属性是所有选定控件共享的属性。

【讨论】:

    【解决方案2】:

    通常,如果控件派生自相同的基础,您可以一次全部选择它们(使用鼠标单击并拖动或按住 ctrl 或 shift 同时选择它们),然后您可以设置它们全部的任何属性从基类共享。

    【讨论】:

    • if controls derive from the same base这确实非常重要。否则即使所有选定的控件都具有此属性,该属性也不会出现,微软感到羞耻
    猜你喜欢
    • 2010-10-24
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2011-06-02
    • 1970-01-01
    • 2021-02-18
    相关资源
    最近更新 更多