Как получить текстовое значение из списка переключателей - PullRequest
0 голосов
/ 06 сентября 2010

Итак, у меня есть два групповых блока, и я хочу получить выбранное значение переключателя от обоих из них.

Если это было просто текстовое поле, вы можете перейти:

thisValue = textbox1.text

Но я понятия не имею, как это сделать для радиокнопки

Ответы [ 3 ]

2 голосов
/ 06 сентября 2010

Чтобы получить значение (при условии, что вы хотите значение , а не текст) из переключателя, вы получите свойство Checked:

bool isChecked = radioButton1.Checked;

Естьнет связи на основе кода между переключателями в GroupBox (кроме переключателей, которые ведут себя таким образом, что одновременно проверяется только одна из переключателей в одном и том же контейнере);Ваш код должен будет отслеживать, какой из них проверен.

Самый простой способ сделать это, возможно, сделать так, чтобы переключатели внутри группового блока запускали один и тот же прослушиватель событий для события CheckedChanged.В этом случае вы можете проверить аргумент sender, чтобы отслеживать, какой из них выбран в данный момент.

Пример:

private enum SearchMode
{
    TitleOnly,
    TitleAndBody,
    SomeOtherWay
}
private SearchMode _selectedSearchMode;
private void SearchModeRadioButtons_CheckedChanged(object sender, EventArgs e)
{
    RadioButton rb = (RadioButton)sender;
    if (rb.Checked)
    {
        if (rb == _radioButtonTitleOnly)
        {
            _selectedSearchMode = SearchMode.TitleOnly;
        }
        else if (rb == _radioButtonTitleAndBody)
        {
            _selectedSearchMode = SearchMode.TitleAndBody;
        }
        else
        {
            // and so on
        }
    }            
}
0 голосов
/ 08 ноября 2017

Ссылка на тот же триггер события клика

private void rb_Click(object sender, EventArgs e) {
    thisValue = ((RadioButton)sender).Text;
}
0 голосов
/ 06 сентября 2010

это пример WindowsForms Linq, если он не работает точно, вы поймете идею

RadioButton rb = null;
RadioButton checkedRB = groupBox1.Controls.FirstOrDefault(
c => (rb = c as RadioButton) != null && rb.Checked) as RadioButton;

if (checkedRB != null)

{
this.Text = checkedRB.Text;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...