[英]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.