Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > вывести список шрифтов в combobox?


Автор: Elfebet 30.5.2006, 14:45
можно было бы использовать так
Код

FontDialog dl = new FontDialog();
dl.ShowDialog();

но задача, такая что нужно с помощью combobox выбрать список установленных шрифтов и отобразить в label текст с выбранным шрифтом и размером.
и все таки как вывести список шрифтов в combobox? 

Автор: mr.DUDA 30.5.2006, 14:57
Вот этот контрол - то что надо:

http://www.codeproject.com/cs/miscctrl/CGFontCombo.asp

А в Label шрифт меняется свойством Font. 

Автор: Elfebet 30.5.2006, 15:11
а что для этого нужен целый контрол?
я та думал что можно это сделать с помощью 1 цикла. 

Автор: mr.DUDA 30.5.2006, 15:30
Нет, ни о каком цикле здесь речь не идёт, комбо бокс содержит однородный список строк. Так что, если нужно каждую строку отрисовать своим шрифтом, значит берём combo box, ставим ему стиль owner draw, и в обработчике события DrawItem рисуем строку заданным шрифтом. 

Автор: Elfebet 30.5.2006, 15:51
нето... я думал можно вытянуть список шрифтов и через цикл записывать в новую строку названия шрифта (без всяких отрисовок).
проблема в том, что я не знаю какой командой мне получить список шрифтов. 

Автор: Elfebet 30.5.2006, 16:51
решил проблему таким способом.
Код

FontFamily[] ff = FontFamily.Families;
for (int x = 0; x < ff.Length; x++)
{
  Font font = null;
  font = new Font(ff[x].Name, comboBox1.Font.Size);
  if (font != null) comboBox1.Items.Add(font.Name);
}
 

Автор: mr.DUDA 30.5.2006, 17:05
Elfebet, вот оно что... Ты спросил о том, как получить и вывести в комбобоксе список имён шрифтов, а я понял что нужно отобразить сами шрифты (по строке с каждым шрифтом). Тогда задачка, конечно, тривиальная. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)