原文地址 WinForm自定义函数FindControl实现按名称查找控件

本文所述实例实现WinForm自定义函数FindControl实现按名称查找控件的功能,在C#程序开发中有一定的实用价值。

/// <summary>
/// 按名称查找控件
/// </summary>
/// <param name="parentControl">查找控件的父容器控件</param>
/// <param name="findCtrlName">查找控件名称</param>
/// <returns>若没有查找到返回NULL</returns>
public static Control FindControl(this Control parentControl, string findCtrlName)
{Control _findedControl = null;if (!string.IsNullOrEmpty(findCtrlName) && parentControl != null){foreach (Control ctrl in parentControl.Controls){if (ctrl.Name.Equals(findCtrlName)){_findedControl = ctrl;break;}}}return _findedControl;
}
/// <summary>
/// 将Control转换某种控件类型
/// </summary>
/// <typeparam name="T">控件类型</typeparam>
/// <param name="control">Control</param>
/// <param name="result">转换结果</param>
/// <returns>若成功则返回控件;若失败则返回NULL</returns>
public static T Cast<T>(this Control control, out bool result) where T : Control
{result = false;T _castCtrl = null;if (control != null){if (control is T){try{_castCtrl = control as T;result = true;}catch (Exception ex){Debug.WriteLine(string.Format("将Control转换某种控件类型异常,原因:{0}", ex.Message));result = false;}}}return _castCtrl;
}

测试代码

bool _sucess = false;
CheckBox _finded = panel1.FindControl("checkBox1").Cast<CheckBox>(out _sucess);
if (_sucess)
{MessageBox.Show(_finded.Name);
}
else
{MessageBox.Show("Not Finded.");
}

[转] WinForm自定义函数FindControl实现按名称查找控件相关推荐

  1. 使用母版页后出现控件,使用FindControl找不到指定控件

    在注册页面中,为了重置页面上所有的控件,编写了页面中重置按钮的单击事件 protected void btnReset_Click(object sender, EventArgs e) { Labe ...

  2. asp.net findcontrol html控件,findcontrol-在ASP.NET中查找控件的更好方法

    findcontrol-在ASP.NET中查找控件的更好方法 我有一个复杂的asp.net表单,在一个表单中甚至有50到60个字段,例如FindControl(),在MultiView中我有GridV ...

  3. Xamarin自定义布局系列——PivotPage(多页面切换控件)

    原文:Xamarin自定义布局系列--PivotPage(多页面切换控件) PivotPage ---- 多页面切换控件 PivotPage是一个多页面切换控件,类似安卓中的ViewPager和UWP ...

  4. Winform下ToolStrip承载自定义控件或 Windows 窗体控件。

     如题,使用ToolStripControlHost. 先看MSDN上介绍的: ToolStripControlHost  是 ToolStripComboBox.ToolStripTextBox ...

  5. qt中利用普通函数将调用ui界面的控件

    一.新建qt程序,界面如图所示: 二.在.h文件中: #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #in ...

  6. Android 自定义View 三板斧之二——组合现有控件

    通常情况下,Android实现自定义控件无非三种方式. Ⅰ.继承现有控件,对其控件的功能进行拓展. Ⅱ.将现有控件进行组合,实现功能更加强大控件. Ⅲ.重写View实现全新的控件 上文说过了如何继承现 ...

  7. Winform中在FastReport的PreviewControl预览控件中对report控件模板中控件值进行修改

    场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  8. ssential Diagram for Windows FormsC#/winForm类似visio的拓扑图节点连线控件免费下载

    Essential Diagram for Windows Forms是一款可扩展的.高性能的.NET平台下的拓扑图控件,可用于开发像Microsoft Visio一样的交互式地绘图和图解应用程序,在 ...

  9. QT-子线程或自定义类操作访问主界面UI控件的几种方法

    前言 QT创建窗体工程,一般在MainWindow或Dialog类里可以直接通过ui指针访问控件,但是添加新的类后又如何访问呢,可以通过以下几种方式: 1.将ui指针公开后直接访问 (1)例如有个自己 ...

最新文章

  1. 裴健等9名华人当选加拿大皇家学会院士
  2. springboot整合mybatis和mybatis-plus
  3. Wijmo 更优美的jQuery UI部件集:运行时处理Wijmo GridView数据操作
  4. 重装了java然后说找不到路径,Java第三次作业第五题
  5. apche commons项目简介
  6. Windows10桌面美化推荐之Dock栏
  7. (03)System Verilog 常用数据类型详解
  8. android安装apk提示版本号不同,android 安装apk 遇到的问题
  9. 中专学历就该被拒之门外?做Java开发改变命运难吗?
  10. python是什么-Python 是什么
  11. Algs4-2.4.5给出以下字母顺序插入大堆的结果
  12. eNSP教程 —— 物理机如何使用web登录到防火墙
  13. 【胡学长 带你学 Global Mapper 】新手必看 入门指南
  14. oracle所有自带系统表,oracle常用系统表
  15. 5种尊重您隐私的替代搜索引擎
  16. idea构建gradle项目报错Could not target platform: ‘Java SE 14‘ using tool chain: ‘JDK 8 (1.8)‘.
  17. 需求响应|动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)
  18. Android 之路18---Java基础12
  19. JS——运用JSONP技术完成百度关键字搜索
  20. 商标中R标和TM标的区别

热门文章

  1. AX2009 的EP开发要点
  2. Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom
  3. 关于arguments,caller以及匿名函数调用的问题
  4. AndroidStudio安卓原生开发_UI高级_StateListDrawable状态选择器_按钮按下和抬起显示不同颜色---Android原生开发工作笔记124
  5. OAuth2.0_授权服务配置_授权码模式_Spring Security OAuth2.0认证授权---springcloud工作笔记144
  6. 基于Spring Security的认证方式_Spring Security 的认证流程_Spring Security OAuth2.0认证授权---springcloud工作笔记123
  7. mybatis工作总结001_mybatis中_parameter使用和常用sql
  8. android学习笔记---android常用的软件布局方式,使用方法总结
  9. 杭电1229 还是A+B
  10. JFrame小练习1