繁体   English   中英

当组合框更改执行某些操作时 (C#)

[英]When combobox changes do something ( C# )

我一直在尝试制作一个带有 3 个组合框的程序,根据您选择的内容,会发生不同的事情。 这是我遇到的问题的屏幕截图。

在此处输入图片说明

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

cBxColor1.Items.Add("黑色");

cBxColor2.Items.Add("黑色");

cBxTest.Items.Add("东西");

在上面的屏幕截图中,我尝试了两种方法在文本框中写入内容。 每当文本更改时之一,然后检查所选项目。 在这种情况下,有黑有黑。 我打算稍后添加更多内容,但到目前为止,我正试图让它与一个一起工作。

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

在此处输入图片说明

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

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

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 都会被调用,您可以在那里编码。

您应该使用 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";
    }
}

此外,while 语句几乎是一个死亡威胁,因为一旦它进入该状态,它就不会离开。 由于正在执行,您将无法更改 ComboBox 值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM