我有一个带有组合框,文本框和按钮的基本表单。组合框中包含不可更改的项目数,但可以通过为所选项目输入新值来更改项目本身。
从图中的示例中,如果我输入诸如“标识符”之类的字符串,则组合框中的所选项目将从“ID”变为“标识符”,如预期的那样。但是,如果我输入“id”,逻辑(下面)正常执行,项目会更新,但在视觉上,项目不会从“ID”更改为“id”。
以下是按钮
的事件处理程序的代码private void btnApply_Click(object sender, EventArgs e) {
string newValue = txtNewName.Text;
if(string.IsNullOrWhiteSpace(newValue)) {
MessageBox.Show("Please input a new column name");
return;
}
if(cmbHeaderNames.Items.Contains(newValue)) {
MessageBox.Show("A column with that name already exists");
return;
}
cmbHeaderNames.Items[cmbHeaderNames.SelectedIndex] = newValue;
txtNewName.Text = "";
}
答案 0 :(得分:3)
我相信ComboBox正在进行一些字符串比较,因为以下代码示例可以正常工作。
if (comboBox1.SelectedItem.ToString().ToUpper() == textBox1.Text.ToUpper())
{
comboBox1.Items[comboBox1.SelectedIndex] = string.Empty;
comboBox1.Items[comboBox1.SelectedIndex] = textBox1.Text;
}
显然,如果在应用ToUpper()或ToLower()时两个字符串值不相同,则更新成功。