Member 13579596 Ответов: 1

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


У меня есть список<class> Когда пользовательский интерфейс изменяется пользователем, как я могу получить измененный адрес элемента из списка? спасибо~

class UIs
{
    public RadioButton rdo;
    // others......
}

List<uis> ListUI = new List<uis>();
private void creat()
{
    for (int i = 0; i < 20; i++)
    {
        UIs UI = new UIs();
        UI.rdo.CheckedChanged += changedCheck;
        ListUI.Add(new UIs());
    }
}
private void changedCheck(object sender, EventArgs e)
{
    RadioButton rdo = (RadioButton)sender;
}


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

Если rdo был изменен пользовательским интерфейсом

Я пытался использовать это событие, но все rdo выглядели одинаково.....

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

1 Ответов

Рейтинг:
2

OriginalGriff

Проблема заключается в том, что у вас есть один RadioButton (rdo) и один список<uis> для каждого экземпляра UIs - и вы не устанавливаете значение rdo до тех пор, пока CheckChangedEvent для этой кнопки. Но событие никогда не произойдет, потому что вы пытаетесь добавить его к rdo для нового экземпляра, который ничего не содержит и вызовет исключение NullReferenceException.
Кроме того, ваши радиокнопки никогда не показываются пользователю, поэтому он не может их изменить!

Это при условии, что в какой-то момент Вы позвоните своему creat метод.

Я думаю, что вам нужно сесть и подумать немного более тщательно о том, что именно вы пытаетесь сделать, потому что этот код очень запутан и выглядит так, как будто он был собран вместе с помощью шаблона GAP*
Я не могу понять, что вы пытаетесь сделать, но это не так, я уверен!

* Пробел : "Угадай и молись"