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

devtools/2025/1/26 14:39:13/

背景:在做项目的时候可能需要根据一定数量创建某些控件并修改其属性,本文以控件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/devtools/153691.html

相关文章

AI大模型DreamShaper XL v2系列分享,适用于Stable Diffusion和ComfyUI

DreamShaper XL v2 Turbo DPMpp _v2 Turbo 通过百度网盘分享的文件&#xff1a;DreamShaper XL v2 Turbo DPMpp _v2 Turbo DPMpp .safetensors 链接: https://pan.baidu.com/s/1ja-9GrFPy7enGKAO-cUUFQ?pwd5566 提取码: 5566 –Stable Diffusion 放在models\Stable-diffusion …

Mellanox ConnectX 系列网卡的双驱动架构:以太网与 InfiniBand 的协同设计

在现代数据中心和高性能计算(HPC)环境中,网络硬件的性能和功能至关重要。Mellanox ConnectX 系列网卡以其卓越的性能和多功能性而闻名,支持从传统的以太网到高性能的 InfiniBand 网络协议。这种多功能性使得 Mellanox 网卡能够满足不同应用场景的需求,从常规的数据中心网络…

goframe 多语言国际化解决方案

项目背景 本项目采用基于JSON配置的多语言国际化&#xff08;i18n&#xff09;解决方案&#xff0c;支持多种语言的无缝切换和本地化。 目录结构 manifest/ └── i18n/├── zh.json # 简体中文├── zh-tw.json # 繁体中文├── en.json # 英语├…

HarmonyOS快速入门

HarmonyOS快速入门 1、基本概念 UI框架&#xff1a; HarmonyOS提供了一套UI开发框架&#xff0c;即方舟开发框架&#xff08;ArkUI框架&#xff09;。方舟开发框架可为开发者提供应用UI开发所必需的能力&#xff0c;比如多种组件、布局计算、动画能力、UI交互、绘制等。 方…

chrome插件:网站视频下载

前置条件&#xff1a; 安装有chrome谷歌浏览器的电脑 使用步骤&#xff1a; 1.打开chrome扩展插件 2.点击管理扩展程序 3.加载已解压的扩展程序 4.选择对应文件夹 5.成功后会出现一个扩展小程序 6.点击对应小程序 7.输入对应网站&#xff0c;点击视频下载

【力扣Hot 100】矩阵2

旋转图像&#xff1a;观察旋转前后矩阵&#xff0c;发现点 i, j的变化规律&#xff0c;即每4个点会一同交换位置。遍历起始点。 搜索二维矩阵&#xff1a;按行二分法 3. 旋转图像 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原…

数据链路层协议

数据链路层协议 1、MA网络&#xff1a; 以太网协议 定义&#xff1a;以太网不是一个网络&#xff0c;而是一个协议&#xff0c;传输标准EthernetII 类型帧的网络 特征&#xff1a;多路访问&#xff0c;广播式的网络&#xff0c;需要使用MAC地址对设备进行区分和标识 构建方法…

如何将xps文件转换为txt文件?xps转为pdf,pdf转为txt,提取pdf表格并转为txt

文章目录 xps转txt方法一方法二 pdf转txt整页转txt提取pdf表格&#xff0c;并转为txt 总结另外参考XPS文件转换为TXT文件XPS文件转换为PDF文件PDF文件转换为TXT文件提取PDF表格并转为TXT示例代码&#xff08;部分&#xff09; 本文测试代码已上传&#xff0c;路径如下&#xff…