C# - WINFORM - 控件树遍历与特定控件操作方案概述
创始人
2025-01-15 06:36:37
0

1.全局控件遍历

实现了一个通用函数EnumerateAllControls, 它可以遍历指定窗体或容器内的所有控件,打印出每个控件的名称和类型。

private void EnumerateAllControls(Control parent) {     foreach (Control control in parent.Controls)     {         Console.WriteLine($"Control Name: {control.Name}, Type: {control.GetType().Name}");         if (control.HasChildren) EnumerateAllControls(control);     } } 
  • 调用方式:通过ReadAllWindowsControls方法启动全局遍历。
public void ReadAllWindowsControls() => EnumerateAllControls(this); 

 2.定向搜索与修改

为了特别处理一种类型为ModbusWareHouseOneControl的控件以及其内部特定标签label1,定义了EnumerateSubControlsOfModbus函数,它首先定位到目标控件类型,然后深入遍历其子控件,寻找并修改名为label1的标签文本。

private void EnumerateSubControlsOfModbus(Control parent) {     foreach (Control control in parent.Controls)     {         if (control is ModbusWareHouseOneControl)         {             Console.WriteLine($"Control Name: {control.Name}, Type: {control.GetType().Name}");             EnumerateAllControls(control); // 专注于该特定类型控件的子控件遍历         }     } } 

结合另一个辅助函数EnumerateAllControls来递归处理找到的子控件,并在其中加入逻辑以查找和修改“label1”控件的文本。

private void EnumerateAllControls(Control control) {     Console.WriteLine($"Control Name: {control.Name}, Type: {control.GetType().Name}");     if (control.HasChildren)     {         foreach (Control child in control.Controls)         {             if (child.Name == "label1")             {                 child.Text = "修改的值";                 break; // 修改后可根据需要选择是否继续遍历             }             EnumerateAllControls(child);         }     } }  public void StartTraversal(Control startingPoint) {     // 开始于指定的起点,通常是应用的主窗体     EnumerateSubControlsOfModbus(startingPoint); }  // 使用场景,在窗体初始化或其他适当位置启动遍历 StartTraversal(this); 

相关内容

热门资讯

玩家必看科普!微信小游戏辅助器... 玩家必看科普!微信小游戏辅助器,德州来玩辅助器,方针教程(有挂攻略)1、微信小游戏辅助器免费脚本咨询...
每日必看推荐!万能微信小游戏辅... 每日必看推荐!万能微信小游戏辅助器,hhpoker德州挂真的有吗,手册教程(确实有挂)1、下载好万能...
科技揭秘!拱趴大菠萝技巧,hh... 科技揭秘!拱趴大菠萝技巧,hhpoker买挂,积累教程(有挂教程)1)拱趴大菠萝技巧有没有挂:进一步...
重大通报!雀神麻雀充运势用吗,... 重大通报!雀神麻雀充运势用吗,德普之星有透视辅助吗,妙计教程(的确有挂)一、雀神麻雀充运势用吗游戏安...
1.9分钟了解!微信微乐辅助i... 1.9分钟了解!微信微乐辅助ios,哈糖大菠萝怎么挂,秘籍教程(的确有挂)进入游戏-大厅左侧-新手福...
科普分享!四川血战到底辅助,哈... 科普分享!四川血战到底辅助,哈糖大菠萝万能挂,积累教程(有挂细节)1、每一步都需要思考,不同水平的挑...
每日必看!情怀国粹麻将开挂,a... 每日必看!情怀国粹麻将开挂,aapoker俱乐部靠谱吗,指南教程(有挂方法)一、情怀国粹麻将开挂游戏...
每日必备!德普之星透视挂,wp... 每日必备!德普之星透视挂,wpk插件辅助,讲义教程(有挂技术)1、完成德普之星透视挂有辅助插件,帮助...
技术分享!wepoker内置辅... 技术分享!wepoker内置辅助器,hhpoker有没有外挂,秘籍教程(有挂助手)该软件可以轻松地帮...
科技揭秘!新超凡辅助app链接... 科技揭秘!新超凡辅助app链接,hardrock作弊,举措教程(有挂方法)1、许多玩家不知道新超凡辅...