Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

Вызов метода для неизвестного элемента WinForm

#c_sharp #winforms


public void FunctionA(Object element)
{
 element.Items.Clear();
}


Пример использования:

FunctionA(checkedListBox1);


В функцию FunctionA будут поступать аргументы только checkedListBox и comboBox, у
обоих элементов есть метод .Items.Clear();

Как сделать чтобы это заработало ?
    


Ответы

Ответ 1



public void FunctionA(IList aList) { aList.Clear(); } FunctionA(checkedListBox1.Items); FunctionA(comboBox1.Items); Update Что делать если в случае добавления checkedListBox1, нужно по умолчанию чекбокс в положении cheked. Ну нет чудес. if (aList is CheckedListBox.ObjectCollection) { ((CheckedListBox.ObjectCollection)aList).Add(Text, true); } else { aList.Add(Text); }

Ответ 2



Ну как-то так: if (element.GetType() == typeof(CheckedListBox)) ((CheckedListBox)element).Items.Clear(); else if (element.GetType() == typeof(ComboBox)) ((CheckedListBox)element).Items.Clear();

Комментариев нет:

Отправить комментарий