1

私はこのようなアイテムとしていくつかの会社名を持っていますComboBox

123 SomeCompany

常に100から999までの数字と会社名。

ここで、ユーザーがアイテムを選択した場合、TextBoxに会社名ではなく番号のみを表示させます。会社名は、ComboBoxをドロップしたときにのみ表示されます...

SelectedIndexChanged-EventとTextChanged-Eventを設定しようとしComboBox1.Text = ComboBox.Text.Substring(0, 3)ましたが、何も実行されませんでした。ComboBoxには常にすべてが含まれていました...

AutocompleteModeに設定されnoneます。

私は何を間違えましたか?

4

3 に答える 3

4

常に値をフォーマットするには、Format イベントを使用できます (FormattingEnabled = true を使用)。

    private void comboBox1_Format(object sender, ListControlConvertEventArgs e)
    {   
          e.Value = e.Value.ToString().Substring(0, 3);
    }

しかし、ドロップダウンが表示されたときに完全な値を表示したい場合は、フォーマットを一時的に無効にすることができます:

    private void comboBox1_DropDown(object sender, EventArgs e)
    {
        comboBox1.FormattingEnabled = false;
    }

    private void comboBox1_DropDownClosed(object sender, EventArgs e)
    {
        comboBox1.FormattingEnabled = true;
    }
于 2012-06-15T09:18:38.013 に答える
0

これを試して

textbox1.Text = ComboBox1.SelectedItem.ToString().SubString(0, 3);
于 2012-06-15T09:25:41.937 に答える
0

次のようなことを試してください:

private void combox1_ SelectedIndexChanged(object sender,EventArgs e)
{
      string value = (combox1.selectedItem != null) ? 
          combox1.selectedItem.ToString().Substring(0, 3) : string.Empty;
}
于 2012-06-15T09:26:11.470 に答える