c# - 如何访问 C# 面板中动态添加的用户控件的控件?
问题描述
我有一个面板,它有多个动态添加的用户控件(都一样),我需要查看是否选中了一个复选框以及每个控件中的 label.text 是什么。不确定如何获得这些值?
这是将用户控件添加到面板的位置
private void Employee_Add_Load(object sender, EventArgs e)
{
List<string> VehicleTypes = DAL.LicenseDAL.GetAllVehicleTypes();
foreach (string Vehicle in VehicleTypes)
{
User_Controls.Vehicle_Bar VTB = new Vehicle_Bar(Vehicle);
pnlVehicleChecks.Controls.Add(VTB);
}
}
这是用户控件(实际上只是一个标签和复选框)
public partial class Vehicle_Bar : UserControl
{
public string Vehicle = "";
public Vehicle_Bar(string vehicle)
{
Vehicle = vehicle;
InitializeComponent();
}
private void Vehicle_Bar_Load(object sender, EventArgs e)
{
lblType.Text = Vehicle;
}
}
所有这些复选框都适用于员工的车辆执照,具体取决于选中的复选框取决于他们将被允许驾驶的车辆
解决方案
您可以在 UserControl 中处理复选框数据的检索并将其存储在可公开访问的数据对象中
public class VehicleInfo
{
public bool allowdrive {get; set; }
public string vehicle {get; set; }
}
public partial class Vehicle_Bar : UserControl
{
public VehicleInfo vehicleInfo;
public Vehicle_Bar(string vehicle)
{
vehicleInfo = new VehicleInfo(){
vehicle = vehicle,
allowdrive = false
};
InitializeComponent();
}
private void Vehicle_Bar_Load(object sender, EventArgs e)
{
lblType.Text = vehicleInfo.vehicle;
}
//Handle checkbox click event to set the value of "allowdrive"
}
字符串和复选框的组合数据存储在对象 vehicleInfo 中,可以使用 UserControl Vehicle_Bar 的实例访问该对象
例子 :
Console.WriteLine(VTB.vehicleInfo.allowdrive);
推荐阅读
- r - R networkD3 包:simpleNetwork() 中的边缘着色
- javascript - WordPress - 自定义块 JS 中的条件语句
- scala - 从同一个父数据帧连接两个派生数据帧时,火花 DAG 是如何工作的?
- cordova-plugins - Cordova 插件包 android.javax.sip 不存在
- c# - 带有 Get 和 Private Set 的并发字典 - C#
- python - Sklearn:ElasticNet 超参数调整的正确程序
- javascript - 样式化组件媒体查询不起作用
- selenium - 如何在范围报告中添加测试数据?
- c++ - OpenCV:管道尚未创建
- excel - COUNTIFS 不适用于日期+时间格式