2013-04-04 3 views
2

У меня есть массив объектов типа Process Я хочу отобразить этот список в поле со списком, в алфавитном порядке и во всех шапках.Формат отображения для .NET Winforms Combobox to Upper Case

Свойство Объект процесса "ProcessName" - это «DisplayMember»; это свойство readonly.

 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

ответ

2

Вы можете форматировать каждый пункт, когда они добавляются, подписавшись на Format события.

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

Но обратите внимание, что когда вы делаете это первый элемент будет выбран, чтобы ваше SelectedValueChanged события будет срабатывать, если вы присоедините обработчик событий Format перед установкой обработчика SelectedValueChanged событий.

Смежные вопросы