winform 遍历所有控件,获取控件 font size ,放入 控件的Tag中
时间: 2023-11-27 21:49:07 浏览: 51
可以使用递归函数遍历所有控件,获取控件的Font Size并将其放入控件的Tag中。以下是示例代码:
```csharp
private void SetFontSizes(Control control)
{
foreach (Control c in control.Controls)
{
if (c.Controls.Count > 0)
{
SetFontSizes(c); // 递归遍历子控件
}
c.Tag = c.Font.Size; // 将控件的 Font Size 放入 Tag 中
}
}
```
在使用时,可以将窗体或容器控件作为参数传入该函数即可:
```csharp
SetFontSizes(this); // 遍历当前窗体所有控件
```
注意:该方法只能获取控件的Font Size属性,如果控件的字体是继承自父控件或默认字体,则获取到的值可能不准确。
相关问题
winform 遍历所有控件,获取控件的Tag ,赋值给控件的font.size
可以使用递归的方式遍历所有的控件,获取控件的Tag属性并赋值给控件的Font.Size属性。
以下是一个示例代码:
```c#
private void SetFontSizeForAllControls(Control control, float fontSize)
{
foreach (Control c in control.Controls)
{
if (c.Tag != null)
{
if (float.TryParse(c.Tag.ToString(), out float tagFontSize))
{
c.Font = new Font(c.Font.FontFamily, tagFontSize);
}
}
if (c.Controls.Count > 0)
{
SetFontSizeForAllControls(c, fontSize);
}
}
}
```
调用这个函数时,传入窗口的根控件以及字体大小即可:
```c#
SetFontSizeForAllControls(this, 14f); // 设置所有控件的字体大小为14
```
注意,这个函数只会设置控件的直接子控件的字体大小,如果控件中还有嵌套的子控件,需要使用递归的方式遍历所有的子控件。
c# winform 遍历控件名称
你可以使用以下代码来遍历 WinForm 中的所有控件名称:
```csharp
private void TraverseControls(Control control)
{
foreach (Control childControl in control.Controls)
{
TraverseControls(childControl);
Console.WriteLine(childControl.Name);
}
}
```
然后,你可以调用该方法来遍历整个窗体中的所有控件:
```csharp
TraverseControls(this);
```
这将会在控制台中输出窗体中所有控件的名称。