C#根据控件名获取控件对象

C# 通过名称寻找控件 通过名称寻找控件 阅读详情
AI摘要

本文介绍如何利用反射技术在WPF和WinForm中直接通过控件名称找到对应对象,简化控件操作过程。

需求:在一个项目中,要实现一个控件选择功能,如果一个个的去判断,代码会十分难看,由于控件名有规律,是否可以根据控件直接找到对应的控件对象?

实现:利用反射

可用于WPF:

object o = this.GetType().GetField(name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);   
            return ((Control)o); 

可用于Winform:

        private void button2_Click(object sender, EventArgs e)
        {
            ((Button)(this.Controls.Find("button1", false)[0])).Text = "123";
        }


WPF类似于Controls.Find:

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ((Button)this.FindName("Button1")).Content = "123";
        }

C# 获取当前控件的所有控件并判断然后改变属性 博主是去年从零基础开始接触C#,所以记录了很多比较基础的东西,故将之前的笔记写于此篇。本人才疏学浅,文中如果有不对或值得讨论的地方,欢迎大家提出来,一起探讨共同进步。???????????????????? 文章目录获取当前窗体中所有控件获取该控件中的所有文本框和下拉框并清空 获取当前窗体中所有控件 public void buttonFalse() { foreach (Control tempcon in tab... 阅读详情

相关推荐

获取Winform窗体或Panel下包含的所有控件、根据控件名称获取指定控件

一、实现效果 在 Winform中窗体(Form)就像一个容器,可以包含所有的控件(比如:panel、button、textedit等控件);如果把窗体看做是 Winform 中最大的容器,那么Panel可以看做第二,Panel控件则是专门用于界面的排版布局,相当于 Web 开发中的层(div),几乎所有控件都可以包含到 Panel 中,包括窗体。 ①获取到指定窗体下的所有控件; ②获取到指定Panel下的所有控件; ③获取到窗体下的所有TextEdit类型控件; ④根据控件名称获取到该控..

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

C# 知道控件Name或者tag值如何定位控件

解决C#中无法获取指定控件的问题

weixin_48200338的博客 1981

C#通过窗口名获取程序所有控件句柄的完整实现

在Windows桌面应用开发中,窗口句柄是跨进程界面自动化的核心入口。很多老牌工控软件、组态工具不提供SDK,但其窗体结构相对固定,开发者可以利用Win32 API中的FindWindow函数,通过窗口标题定位顶层窗口句柄,再借助EnumChildWindows配合递归遍历,枚举出窗口内的所有子控件句柄。这一机制不依赖进程ID,也不需要关心目标程序的语言,只需要一个稳定的窗口名即可完成对按钮、文本框、下拉框等控件的精准定位。该技术在工业上位机自动化、桌面工具集成、界面数据采集等场景中非常实用。本文从API原

weixin_33393017的博客 219

c#通过属性名称获取对象属性的值

可以使用反射获取相应对象的值 例如有如下类 public class Modal{ string name {get;set;} } 想要通过属性name获取Modal.name对应的值,可以通过以下代码获得 Modal modal = new Modal() string value = modal.GetType().GetProperty("name").GetValue...

Doris0430的博客 3410

C#实现根据指定容器和控件名字获得控件的方法

主要介绍了C#实现根据指定容器和控件名字获得控件的方法,其中包括了遍历与递归的应用,需要的朋友可以参考下

C#通过属性名字符串获取、设置对象属性值操作示例

本文实例讲述了C#通过属性名字符串获取、设置对象属性值操作.分享给大家供大家参考,具体如下: #通过反射获取对象属性值并设置属性值 0、定义一个类 public class User { public int Id { get; set; } public string Name { get; set; } public string Age { get; set; } } 1、通过属性名(字符串)获取对象属性值 User u = new User(); u.Name = "lily"; var propName = "Name"; var propNameVa

C#-根据控件名获取控件对象

C#根据控件名获取控件对象 2014年11月07日 11:05:57CLeopard阅读数 25001 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CLeopard/article/details/40889999 需求:在一个项目中,要实现一个控件选择功能,如果一个个的去判断,代码会十分难看,由于控件名有规律, 是否可以根据控件直...

cxu123321的博客 3577

[仿真实战]FDTD Solutions 8.0:从零搭建薄膜光谱分析模型

本文提供了一份基于FDTD Solutions 8.0的薄膜光谱分析模型从零搭建实战指南。通过详细步骤,手把手教你创建玻璃基底与硅薄膜的几何结构、设置仿真区域与边界条件、配置光源与监视器,并最终计算反射率与透射率光谱。内容涵盖参数扫描与优化,旨在帮助用户快速掌握FDTD仿真在纳米光子学与薄膜光学设计中的核心应用。

defi6farmer的博客 498

C#根据控件名获取控件

C#根据控件名获取控件 在网上看到的方法主要有两种。 1. string name=“Label” + “1”; foreach (Control item in this.Controls)   {     if (item. Name == name)     { item. Visible = true; } 这种方法虽然可以实现效果,但过于复杂,写得太多。 2.遍历一个parent里面所有控件,根据控件类型获取控件。 这种方法干脆就跟控件名没关系,只跟控件类型有关。 可以这么写: for(int i

newswordbetrue的博客 2699

开发者的避坑指南:在Apple Silicon Mac上构建RocketMQ Python客户端的完整心路历程

本文详细记录了在Apple Silicon Mac上构建RocketMQ Python客户端的完整过程,重点解决了架构兼容性问题。通过源码编译rocketmq-client-cpp库,修复构建脚本和CMake配置,最终成功在M2芯片MacBook Pro上部署RocketMQ Python客户端,为开发者提供了实用的避坑指南。

Pepper的专栏 696

4.无限共轭距柯克物镜设计——zemax学习笔记

无限共轭cooker物镜

fly_daerm的博客 1596

Winform根据控件名获取指定控件

/// <summary> /// 根据指定容器和控件名字,获得控件 /// </summary> /// <param name="obj">容器</param> /// <param name="strControlName">控件名字</param> /// <returns>控件</returns> private object GetControlInstance(object obj, string.

马儿不吃草 2117

UWB定位进阶:如何利用DW1000的CIR数据做NLOS信号识别?

本文深入探讨了如何利用DW1000芯片的信道脉冲响应(CIR)数据进行非视距(NLOS)信号识别,以提升UWB定位精度。通过分析CIR数据的核心价值、预处理方法、特征提取技术以及机器学习模型构建,为研究人员和工程师提供了实用的解决方案,帮助克服室内定位中的NLOS挑战。

weixin_28729205的博客 474

C# 获取窗口(控件)句柄,名称,标题,根据句柄获得该对象

//声明 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、主要内容? 二、使用步骤 1.引入方法 2.调用 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、主要内容? 句柄的获取,句柄名称的获取,句柄像控件的转化 二、使用步骤 1.引入方法 代码如下(示例): //获取窗口标题 [DllImport("user32", SetLastError = true)] private stati...

a1376871144的博客 1万+

YOLOv8自动驾驶系统 —— 夜间低光照条件 详细说明和完整代码

本文提出一种针对夜间低光照优化的自动驾驶车道保持系统方案,基于YOLOv8模型改进,包含三大核心技术:1.采用Retinex理论的多尺度低光增强算法,结合自适应伽马校正;2.改进YOLOv8的车道检测模型,通过夜间专用数据集训练,增加抗眩光处理;3.多传感器融合框架,整合可见光与红外图像。系统实现动态逆透视变换和参数调整,在Jetson Orin硬件上达到30ms级实时性能。测试显示在无照明、眩光干扰等极端场景下保持稳定,代码已开源。扩展方向包括V2X协同定位和自适应大灯联动控制。

u010117029的博客 598

学Simulink--基础微电网场景实例:基于Simulink的微电网黑启动过程建模与仿真

黑启动(Black Start)是指在全系统停电(无电压、无频率)状态下,微电网依靠内部电源自主恢复供电的能力。🌩️典型场景主网长时间故障自然灾害导致区域停电计划检修后重启❗挑战无参考电压/频率 → 逆变器无法锁相负荷逐级投入 → 需避免过流/过压多电源协调 → 防止环流或失步✅黑启动成功标准在30 秒内恢复关键负荷供电电压/频率稳定在范围内无设备损坏或保护跳闸🎯本文目标:手把手教你使用 Simulink + Simscape + Stateflow 搭建。

amy_mhd的博客 200

C#控件遍历(获取控件名)

C#中,遍历窗体上的控件,并显示在ListBox1中: private void button1_Click(object sender, EventArgs e)         {             listBox1.Items.Clear();             GetControl(this.Controls);         }         private

lockelk的专栏 4221

网络工程师如何利用Python自动Telnet到N个路由器并执行配置?

telnetlib是Python标准库中的一个模块,专门用于实现Telnet协议。通过telnetlib,我们可以方便地与支持Telnet协议的远程设备进行通信。telnetlib提供了基本的Telnet功能,如连接远程主机、发送命令、读取响应等,使得编写Telnet自动化脚本变得非常简单。文档:可以选择中文:虽然telnetlib的功能相对基础,但对于大多数Telnet操作来说已经足够。通过telnetlib,可以轻松地实现与网络设备的交互,完成自动化配置任务。

网络技术联盟站 298

c# 遍历 根据控件名获取控件实例

本文介绍了在C#中根据控件名称获取控件实例的方法。对于WinForms,可使用Control.Find方法或递归遍历容器控件;对于WPF,推荐使用LogicalTreeHelper.FindLogicalNode或递归遍历逻辑树。两种框架都提供了直接查找和递归查找两种方式,开发者可根据项目类型选择合适方法。文章包含具体代码示例,展示了如何在不同场景下实现控件查找功能。

weixin_40029679的博客 411

[AI8051U入门第一步]环境安装和按键控制流水灯

本文介绍了AI8051U单片机的开发环境搭建及GPIO应用。主要内容包括:1)通过ISP软件完成Keil开发环境配置;2)AI8051U特性介绍,包括32位8051内核、浮点运算单元及丰富外设;3)GPIO输入输出模式解析,并附流水灯控制代码;4)提供完整的系统初始化、延时函数及LED控制代码实现。文章配套资源包含完整工程代码,适用于智能硬件及物联网开发。

sinat_58149788的博客 670

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C#中根据一个控件名字获取控件

在GUI编程时,经常希望在一个函数中改变一个空间的样子,但只知道它的名字,怎么办呢: private void button1_Click(object sender, EventArgs e) {    for (int i = 1; i <= 47; i++) {   string t = "label" + Convert.ToString(i);  ...

aoqizhan1605的博客 1406

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C#获取页面上的所有checkbox控件对象并设置属性

测试系统:win10 64.net版本:4.5.2测试平台:vs2017测试语言:C# .net核心代码: void 设置TextBox属性(Control control, bool enable)///// 界面中所有的TextBox,并设置可读写属性 { if (control is TextBox)//判断是否是TextBox控件 ...

忆思姐姐学习笔记 4018

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# 获取控件名,通过控件名修改属性,触发事件

通过结构体保存控件名以及控件数据; 通过遍历结构体快速将数据以XML的形式保存到本地; 通过得到的控件名修改控件的属性以及触发控件事件; 通过sender得到控件名。

流浪—到处搬砖的博客 3048

[转]反射的应用--根据控件名取得控件,获取值及赋值

本文转自:http://www.cnblogs.com/waban/archive/2007/03/06/665326.html 1 //必须引用命名空间System.Reflection,System.ComponentModel 2 3 /// <summary> 4 /// 根据控件名和属性名取值 5 /// </summary&...

aptl84294的博客 147

C# 获取指定页面所有的控件及嵌套控件

百度了很多方法都无法正确解析出多层嵌套的xml文件,网上很多方法都仅适用于单层解析。于是参考了网上的方法并进行改进,具体方法如下:

weixin_48858524的博客 2992
上一篇: WPF设置全局字体和字体嵌入
下一篇: C#WinForm 藏到系统托盘
CLeopard
博客等级 码龄15年 180粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值