【问题标题】:When combobox changes do something ( C# )当组合框更改时做某事(C#)
【发布时间】:2015-11-16 18:00:19
【问题描述】:

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

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

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

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

cBxTest.Items.Add("Something");

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

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

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

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

【问题讨论】:

  • 请编辑您的帖子并放置实际代码而不是图像。真的很难阅读

标签: c# winforms combobox textbox


【解决方案1】:

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,您可以在那里编写代码。

【讨论】:

    【解决方案2】:

    您应该使用 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 值。

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      相关资源
      最近更新 更多