Вы можете изменить MyFontDialog следующим образом:
public partial class MyFontDialog : Form
{
private FontListBox _fontListBox;
private ListBox _fontSizeListBox;
public MyFontDialog()
{
//InitializeComponent();
_fontListBox = new FontListBox();
_fontListBox.SelectedIndexChanged += OnfontListBoxSelectedIndexChanged;
_fontListBox.Size = new Size(200, Height);
Controls.Add(_fontListBox);
_fontSizeListBox = new ListBox();
_fontSizeListBox.Location = new Point(_fontListBox.Width, 0);
Controls.Add(_fontSizeListBox);
}
private void OnfontListBoxSelectedIndexChanged(object sender, EventArgs e)
{
_fontSizeListBox.Items.Clear();
Font font = _fontListBox.SelectedItem as Font;
if (font != null)
{
foreach (FontStyle style in Enum.GetValues(typeof(FontStyle)))
{
if (font.FontFamily.IsStyleAvailable(style))
{
_fontSizeListBox.Items.Add(style);
}
}
}
}
}
Будет создано поле со списком шрифтов со списком доступных стилей шрифтов. Что касается выбора размера, вы можете просто добавить список с жестко закодированным списком размера: 8,9,10,11,12, 14,16,18,20,22,24,26,28,36,48 и 72 так же, как стандартный FontDialog, так как мы имеем дело со шрифтами истинного типа.