2

タイプ Process のオブジェクトの配列があります。このリストをアルファベット順ですべて大文字でコンボボックスに表示したいと思います。

Process オブジェクト プロパティ「ProcessName」は「DisplayMember」です。これは読み取り専用のプロパティです。

        private void Form1_Load(object sender, EventArgs e)
    {
        //get the running processes
        Process[] procs = Process.GetProcesses();
        //alphabetize the list.
        var orderedprocs = from p in procs orderby p.ProcessName select p;
        //set the datasource to the alphabetized list
        comboBox1.DataSource = orderedprocs.ToArray<Process>();
        comboBox1.DisplayMember = "ProcessName";

        // Make the display member render as UPPER CASE???
        //comboBox1.FormatString


    }

答えは FormatString にあると思います

4

1 に答える 1

2

イベントにサブスクライブすることで、アイテムが追加されたときに各アイテムをフォーマットできますFormat

comboBox1.Format += (s, e) =>
    { 
         e.Value = e.Value.ToString().ToUpperInvariant();
    };

ただし、これを行うと最初の項目が選択されるため、イベント ハンドラーをアタッチする前にイベント ハンドラーSelectedValueChangedをアタッチしない限り、イベントが発生することに注意してください。FormatSelectedValueChanged

于 2013-04-04T17:52:00.617 に答える