C# 动态创建Label和ComboBox控件并修改Text获取Text

ops/2025/1/23 11:39:50/

背景:在做项目的时候可能需要根据一定数量创建某些控件并修改其属性,本文以控件label、ConboBox控件进行动态创建。

程序运行前后的的Form动态图

动画

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace C__动态创建label和combobox控件
{public partial class Form1 : Form{private List<KeyValuePair<Label, ComboBox>> dynamicControls;public Form1(){dynamicControls = new List<KeyValuePair<Label, ComboBox>>();InitializeComponent();CreateDynamicControls();}private void CreateDynamicControls(){for(int i=0;i<6;i++){Label label = new Label();label.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);label.Text = $"相机{i + 1}";label.Location = new System.Drawing.Point(50, 10 + i * 30);ComboBox comboBox = new ComboBox();comboBox.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);comboBox.Items.AddRange(new object[] { "Option 1", "Option2", "Option3" });comboBox.DropDownStyle = ComboBoxStyle.DropDownList;comboBox.Location = new System.Drawing.Point(150, 10 + i * 30);comboBox.Width = 500;this.Controls.Add(label);this.Controls.Add(comboBox);dynamicControls.Add(new KeyValuePair<Label, ComboBox>(label, comboBox));}}//保存动态控件的文本信息private void SaveDynamicControlText(){foreach (var pair in dynamicControls){Console.WriteLine($"Label:{pair.Key.Text},ComboBox:{pair.Value.SelectedItem}");}}}
}

源代码下载

下载链接腾讯云盘
https://share.weiyun.com/ouZjoUzF

获取List列表中的Text

List<KeyValuePair<Label, ComboBox>> dynamicControls 怎么获取combobox中text属性或者Label中的text?

遍历列表

如果使用C#,并且假设Label和ComboBox是Windows Forms相关的控件类型。首先需要遍历dynamicControls列表。
以下是示例代码:

foreach (KeyValuePair<Label, ComboBox> pair in dynamicControls) 
{ // 获取ComboBox中的Text属性 string text = pair.Value.Text; string textlabel=pair.key.Text;// 这里可以对获取到的text进行进一步处理,比如输出或者存储等操作 Console.WriteLine(text); 
} 

错误处理

在实际应用中,需要确保ComboBox已经被正确初始化并且有值。如果在获取Text属性之前ComboBox没有被正确设置值,可能会得到空字符串或者引发异常。
例如,可以在获取Text属性之前先检查ComboBox是否有SelectedItem:

foreach (KeyValuePair<Label, ComboBox> pair in dynamicControls) 
{ string textlabel=pair.key.Text;if (pair.Value.SelectedItem!= null) { string text = pair.Value.Text; Console.WriteLine(text); } else { // 可以进行相应的提示或者处理逻辑,比如记录日志等 Console.WriteLine("ComboBox has no selected item."); } 
} 

List<KeyValuePair<Label, ComboBox>> dynamicControls combobox添加多个值后在combobox上显示

创建和初始化ComboBox

首先,假设你已经有了List<KeyValuePair<Label, ComboBox>>类型的dynamicControls。对于每个ComboBox,你可以使用Items.Add方法来添加多个值。
例如:

foreach (var controlPair in dynamicControls) 
{ ComboBox comboBox = controlPair.Value; comboBox.Items.Add("Value1"); comboBox.Items.Add("Value2"); comboBox.Items.Add("Value3"); 
} 

设置显示属性

如果要让ComboBox显示添加的值,通常它会默认显示第一个添加的值。如果要设置特定的显示值,可以使用SelectedIndex属性。
例如,如果要显示第二个添加的值(索引为1,因为索引从0开始):

foreach (var controlPair in dynamicControls) 
{ ComboBox comboBox = controlPair.Value; comboBox.SelectedIndex = 1; 
} 

List<KeyValuePair<Label, ComboBox>> dynamicControls 点击事件为什么只有一个控件响应该事件?

正确的解决办法

private void ImageSetting_Load(object sender, EventArgs e){           foreach (var ClickPair in dynamicControls){ClickPair.Value.Click += new EventHandler(comboBox_Click);}LoadFrameSeriaml();}

http://www.ppmy.cn/ops/152453.html

相关文章

自动化标注平台开源,基于 yolov8标注平台可本地部署

yolov8标注平台本地部署&#xff08;docker部署&#xff09;&#xff0c;已调通yolov8模型自动预标注功能。 下面开始背景知识…… 1&#xff09;数据标注为什么在人工智能时代如此重要&#xff1f; 数据标注在人工智能时代如此重要&#xff0c;原因如下&#xff1a; 为机器…

《自动驾驶与机器人中的SLAM技术》ch8:基于预积分和图优化的紧耦合 LIO 系统

目录 1 预积分 LIO 系统的经验 2 预积分图优化的顶点 3 预积分图优化的边 3.1 NDT 残差边&#xff08;观测值维度为 3 维的单元边&#xff09; 4 基于预积分和图优化 LIO 系统的实现 4.1 IMU 静止初始化 4.2 使用预积分预测 4.3 使用 IMU 预测位姿进行运动补偿 4.4 位姿配准部…

[Spring] OpenFeign的使用

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

MySQL 窗口函数

MySQL 窗口函数 1&#xff0c;窗口函数 1.1&#xff0c;什么是窗口函数1.2&#xff0c;基本语法 2&#xff0c;函数详解 2.1&#xff0c;聚合函数2.2&#xff0c;排序函数2.3&#xff0c;偏移函数2.4&#xff0c;值函数 3&#xff0c;进阶用法 1&#xff0c;窗口函数 1.1&am…

PHP校园助手系统小程序

&#x1f511; 校园助手系统 —— 智慧校园生活 &#x1f4f1;一款基于ThinkPHPUniapp框架深度定制的校园助手系统&#xff0c;犹如一把智慧之钥&#xff0c;专为校园团队精心打造&#xff0c;解锁智慧校园生活的无限精彩。它独家适配微信小程序&#xff0c;无需繁琐的下载与安…

mysql数据被误删的恢复方案

文章目录 一、使用备份恢复二、使用二进制日志&#xff08;Binary Log&#xff09;三、使用InnoDB表空间恢复四、使用第三方工具预防措施 数据误删是一个严重的数据库管理问题&#xff0c;但通过合理的备份策略和使用适当的恢复工具&#xff0c;可以有效地减少数据丢失的风险…

用着很顺手的电脑亮度随心随意调节

一、功能介绍 显示高级设置&#xff0c;可以调节屏幕RGB色彩。 娱乐亮度&#xff0c;一键娱乐亮度调节。 护眼亮度&#xff0c;保护眼睛&#xff0c;减少蓝光。 恢复正常&#xff0c;一键恢复到默认模块。 二、问题解答 1、亮度更改后显示器无变化&#xff01;软件根本都没…

Glarysoft Malware Hunter 多语检测和删除各种恶意软件和间谍软件 v1.195.0.824

Glarysoft Malware Hunter 是一款专业的安全工具&#xff0c;旨在帮助用户检测和删除各种恶意软件和间谍软件。它可以扫描和删除计算机上的病毒、木马、广告软件和其他安全威胁。 软件功能 病毒扫描&#xff1a;Malware Hunter可以快速而全面地扫描计算机&#xff0c;以查找潜…