Как получить доступ к элементам управления динамически добавленных пользовательских элементов управления на панели в C #? - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть панель, на которой есть несколько динамически добавляемых пользовательских элементов управления (все то же самое), и мне нужно посмотреть, установлен ли флажок и что обозначает 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;
    }
}

Все эти флажки относятся к лицензии на транспортное средство для сотрудника, в зависимости от того, какие флажки установлены, зависит от того, на каком транспортном средстве им будет разрешено управлять

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете обработать извлечение данных флажков внутри 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...