0

コンボボックス、テキストボックス、ボタンが付いた基本的なフォームがあります。コンボボックス内のアイテムの数は変更できませんが、選択したアイテムに新しい値を入力することで、アイテム自体を変更できます。

ここに画像の説明を入力してください

写真の例から、「識別子」などの文字列を入力すると、コンボボックスで選択した項目が「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 = "";

}
4

1 に答える 1

3

次のコードサンプルが機能するため、ComboBoxは文字列の比較を行っていると思います。

if (comboBox1.SelectedItem.ToString().ToUpper() == textBox1.Text.ToUpper())
{
     comboBox1.Items[comboBox1.SelectedIndex] = string.Empty;
     comboBox1.Items[comboBox1.SelectedIndex] = textBox1.Text;
}

明らかに、ToUpper()またはToLower()を適用するときに2つの文字列値が同一でない場合、更新は正常に適用されます。

于 2012-05-02T09:33:14.710 に答える