Member 12687352 Ответов: 1

Возврат другого значения свойства из пользовательского элемента управления для использования в другом пользовательском элементе управления


У меня есть два пользовательских элемента управления как UC1 & UC2, и они имеют следующие свойства :
(плыть) InletPressure
(поплавок) выходное давление
(плыть) Пресс-капля
(плыть) расход

У меня есть другой пользовательский элемент управления как TX1, и у него есть текстовое поле и свойство с именем Owner.
Мне нужно иметь возможность ссылаться "владелец" на один из UC1 или UC2, а textbox возвращает значение одного из вышеупомянутых свойств в UC1 или UC2 следующим образом :

TextBox1. Text=Владелец.Входное давление.Метод toString();
или textbox1.Текст=Владелец.Выходное давление.Метод toString();
и так далее.

Что я уже пробовал:

Я не имею об этом ни малейшего представления. Пожалуйста, помогите мне найти ссылку.

1 Ответов

Рейтинг:
12

Graeme_Grant

Я бы определил Интерфейс[^] с общими свойствами и методами. Примените его к UC1 &усилитель; UC2 и добавить свойство в список<[видео]> В TX1 передайте ссылку на объект. Теперь в TX1- Что-То Вроде...

public interface IFeedBack
{
    string InletPressure { get; set; }
    string OutletPressure { get; set; }
}

Затем в UC1 &усилитель; UC2
public UC1 : Control, IFeedback
{
    ...
    public string InletPressure { get; set; }
    public OutletPressure { get; set; }
    ...
}

public UC2 : Control, IFeedback
{
    ...
    public string InletPressure { get; set; }
    public OutletPressure { get; set; }
    ...
}

И TX1
public TX1 : Control
{
    ...
    public List<IFeedBack> FeedbackControls { get; } = new List<IFeedBack>();
    ...
    private void UpdateFeedback()
    {
        ...
        txtInletPressure.Text = FeedbackControls[0].InletPressure;
        ...
    }
}

Использовать...
class Form1
{
    ...
    private void HookupControls()
    {
        ...
        // TX1, UC1, UC2, controls
        feedBackControl.FeedbackControls.AddRange(PressureControl1, PressureControl2);
        ...
    }
    ...
}


Member 12687352

Спасибо. Это хорошее решение. но я до сих пор не понимаю, как определить, какое из свойств (InletPressure или OutputPressure) выбранного элемента управления должно быть показано TX1.

Graeme_Grant

Только вы можете решить, какая логика используется для выбора того, что отображать.