2015-12-07 3 views
0

Как я могу заставить это работать всегда, независимо от того, проверяю ли я переключатель сначала, или первый элемент поля со списком? В настоящее время он работает только в том случае, если сначала установлен переключатель. Спасибо.Преимущество ComboBox1 над переключателем?

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (comboBox1.Text == "Test1" && radioButton1.Checked) 
    { 
     StreamReader sr = new StreamReader(@"my path"); 
     string str = sr.ReadToEnd(); 
     textBox1.Text = str; 
    } 
} 

ответ

1

Если НУ хотите тест, чтобы быть правдой, является ли текст выпадающий является «Test1» ИЛИ readiobutton проверяется, что вам нужно сделать тест на OR вместо AND, например, так:

if (comboBox1.Text == "Test1" || radioButton1.Checked) 

Если оба условия должны быть верно, попробуйте это (псевдокод):

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (ConditionFulfilled) 
    { 
     readThatPuppy(); 
    } 
} 

private void radioButton1_CheckedChanged(object sender, EventArgs e) 
{ 
    if (ConditionFulfilled) 
    { 
     readThatPuppy(); 
    } 
} 

private bool ConditionFulfilled() 
{ 
    return (comboBox1.Text.Equals("Test1") && radioButton1.Checked; 
} 

private void readThatPuppy() 
{ 
    StreamReader sr = new StreamReader(@"my path"); 
    string str = sr.ReadToEnd(); 
    textBox1.Text = str; 
} 
+0

@Randy, ваше предложение не работает ни на одном, ни на. – Dominique1256

1

Я предполагаю, что это событие будет связано только с событием ComboBox. Вам нужно переместить этот код в общую функцию и вызвать его как из события ComboBox SelectedIndexChanged, так и из события с измененной функцией радиообмена.

0

Причина, по которой эта функция работает только при проверке переключателя, заключается в том, что у вас есть это условие в обработчике событий.

Попробуйте следующее и убедитесь, что оно делает то, что вы ищете.

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (comboBox1.Text == "Test1" || radioButton1.Checked) 
    { 
     StreamReader sr = new StreamReader(@"my path"); 
     string str = sr.ReadToEnd(); 
     textBox1.Text = str; 
    } 
} 
+0

@B. Клей, у меня есть 65 переключателей, что заставит меня написать 130, если условия? – Dominique1256

+0

Возможно, вы использовали общий четный обработчик для всех переключателей. Я бы держался подальше от дизайнера с помощью 65 переключателей и старался добавлять их во время выполнения кода. – Randy

+0

спасибо за отзыв Ранди, ты научил меня чему-то. – Dominique1256