2012-05-02 5 views
0

コンボボックス、テキストボックス、ボタンのある基本フォームがあります。コンボボックスには変更できない数の項目がありますが、選択した項目に新しい値を入力することによって項目自体を変更できます。画像の例のコンボボックスの項目は大文字と小文字が変更されても更新されません

enter image description here

、Iは入力予想通り「識別子」と「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 = ""; 

} 
+1

これを行うには、[BindingList ](http://msdn.microsoft.com/en-us/library/ms132679.aspx)をデータソースとして使用したいと考えています。 – Candide

答えて

3

ためのコードです。

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

どうやら、更新が正常にTOUPPER()またはTOLOWER()を適用する際に2つの文字列の値が同一でない場合に適用されます。

+0

これは私の使用のために十分です。ありがとう。 – daniel

関連する問題