Решение для меня было:
<xs:complexType name="dataType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:anyAttribute processContents="skip"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
Ошибка моей IDE (PHPStorm) с
blockquote>xs:any
, ноxs:anyAttribute
поддерживается
Вы можете использовать LINQ:
var checkedButton = container.Controls.OfType<RadioButton>()
.FirstOrDefault(r => r.Checked);
Обратите внимание, что для этого необходимо, чтобы все переключатели находились непосредственно в одном контейнере (например, на панели или форме), и что в нем есть только одна группа. контейнер. Если это не так, вы можете создать List
в своем конструкторе для каждой группы, а затем написать list.FirstOrDefault (r => r.Checked)
.
Вы можете связать CheckedEvents всех кнопок с одним обработчиком. Там вы можете легко получить правильный флажок.
// Wire all events into this.
private void AllCheckBoxes_CheckedChanged(Object sender, EventArgs e) {
// Check of the raiser of the event is a checked Checkbox.
// Of course we also need to to cast it first.
if (((RadioButton)sender).Checked) {
// This is the correct control.
RadioButton rb = (RadioButton)sender;
}
}
Для тех, у кого нет LINQ:
RadioButton GetCheckedRadio(Control container)
{
foreach (var control in container.Controls)
{
RadioButton radio = control as RadioButton;
if (radio != null && radio.Checked)
{
return radio;
}
}
return null;
}
Вы можете использовать событие CheckedChanged для всех ваших RadioButton. Отправитель
будет иметь непроверенные и отмеченные RadioButtons.