当组合框改变做某事时(C#)

时间:2015-11-16 18:00:20

标签: c# winforms combobox textbox

我一直试图制作一个包含3个组合框的程序,这取决于你选择的不同事情。 这是我所坚持的截图。

enter image description here

屏幕截图中唯一缺少的是以下内容,它位于私有void Form1_Load事件

cBxColor1.Items.Add("黑色&#34);

cBxColor2.Items.Add("黑色&#34);

cBxTest.Items.Add("东西&#34);

在上面的屏幕截图中,我尝试了两种方法在文本框中编写内容。一旦文本发生变化,然后检查选择的项目。在这种情况下,东西,黑色和黑色。我计划稍后添加更多,但到目前为止,我试图让它与其中一个一起工作。

最初的计划是(在组合框中选择的文本是Something,Black和Black)然后在文本框中添加一些文本,如果这是真的。

enter image description here

我在尝试其他方法时遇到的错误的屏幕截图,我不确定这意味着什么。

我用谷歌搜索并寻找解决方案,但我真的找不到任何有助于解决问题的方法。如果1337 hax0rz在这里帮助我,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

TextChanged是一个事件。在这样的方法中使用它:

private void ComboBox_TextUpdate(Object sender, EventArgs e)
{
  //Your code here
   MessageBox.Show("You are in the ComboBox.TextUpdate event.");
}

在初始化时将带有+ =的事件添加到组合框:

ComboBox.TextUpdate += ComboBox_TextUpdate;

因此,在每个TextUpdate中,您的Methode ComboBox_TextUpdate都会被调用,您可以在那里进行编码。

答案 1 :(得分:0)

您应该使用ComboBox事件SelectedValueChanged,而不是使用if条件来查看文本是否已更改。

要创建该事件,请右键单击ComboBox并选择属性。选择"活动"并双击SelectedValueChanged事件旁边的文本框。

然后你想像你一样检查每个ComboBox的值。

private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
    if (cBxColor1.SelectedText.Equals("Black") || cBxColor2.SelectedText.Equals("Black") || cBxTest.SelectedText.Equals("Something"))
    {
        tbxTest.Text = "TEST";
    }
}

此外,虽然声明几乎是死亡威胁,因为一旦它进入该状态,它就不会离开。 由于执行时间的原因,您无法更改ComboBox值。