ComboBox1优先于单选按钮

本文关键字:单选按钮 优先于 ComboBox1 | 更新日期: 2023-09-27 18:26:04

无论我是先检查单选按钮,还是先检查组合框项目,我如何使其始终有效?目前,只有先选中单选按钮,它才能工作。非常感谢。

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;
    }
}

ComboBox1优先于单选按钮

我猜此事件仅与组合框事件关联。您需要将此代码移动到一个通用函数中,并从ComboBoxSelectedIndexChanged事件和radiobuttons changed事件中调用它。

如果您希望测试为true,无论组合框文本是"Test1"还是选中了readio按钮,您都需要使测试为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;
}

只有在选中单选按钮时才起作用的原因是,您的事件处理程序中存在此条件。

试试下面的方法,看看它是否符合你的要求。

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;
    }
}