c#监听组合框选择的变化

时间:2014-01-22 19:55:14

标签: c# combobox textbox listener

背景

我编写了一个与SQL数据库交互的c#应用程序。最近的功能请求是允许不同类型的身份验证(3种类型)。我最初决定使用3个单选按钮(每个auth选项一个)和2个文本框(用户名/密码)。这工作正常,所有后台代码都工作正常,但他们现在要求当他们使用SSPI auth(不需要用户额外输入)时,我会使文本框变灰,因此无法输入信息,并且当选择其他两个选项之一时,允许盒子再次可编辑。为了使这个更干净,我现在有一个组合框,有3个项目(auth)和2个文本框(un / pw)。

问题

如何在用户点击运行之前让应用程序侦听组合框的更改?我一直使用按钮作为催化剂事件,之前没有必要这样做。我已经看到了一些例子,我可以使用条件(如果选择的索引等于x)做等等,但似乎需要按下我的开始按钮而不是一个可行的解决方案。我也发现这个例子C# -comboBox Selected IndexChange,我不太明白,我相信需要2个盒子,但我不知道为什么。

sudo code

if ((combobox item is not selected) or (combobox selection == indexitem1))
{ 
    //then keep textboxes read only
}
else 
{
    //change textbox to editable
}

请求

我需要这个监听器能够告诉组合框选择何时是3个选项中的任何一个并在它们之间移动并且将正确地改变文本框以反映当前选择,而不管以前状态到当前状态。

非常感谢任何帮助。链接,代码,评论,问题。一切都帮助我看到我尚未找到的东西或帮助我寻找更好的答案。谢谢!

溶液

我刚想出来了

private void AuthSelect_SelectedIndexChanged(object sender, EventArgs e)
        {
            //listen if combobox selection is changed
            if ((AuthSelect.SelectedIndex == 0) || (AuthSelect.SelectedIndex == -1))
            {
                userName.ReadOnly = true;
                password.ReadOnly = true;
            }
            else
            {
                userName.ReadOnly = false;
                password.ReadOnly = false;
            }      
        }

1 个答案:

答案 0 :(得分:1)

private void AuthSelect_SelectedIndexChanged(object sender, EventArgs e)
        {
            //listen if combobox selection is changed
            if ((AuthSelect.SelectedIndex == 0) || (AuthSelect.SelectedIndex == -1))
            {
                userName.ReadOnly = true;
                password.ReadOnly = true;
            }
            else
            {
                userName.ReadOnly = false;
                password.ReadOnly = false;
            }      
        }