0

プログラミング スキルをもう少し磨くために、テキスト エディタを作成しています。私はwinformで新しいテキストファイルを開き、それらを保存し、通常の元に戻す、やり直し、コピー、貼り付けなどを行います。ただし。現在、フォントを変更しようとしています。

メニュー ストリップの [フォントの変更] ボタンをクリックすると、新しいフォームが表示され、使用可能なすべてのフォントがリスト ボックスに読み込まれます。

List<string> fonts = new List<string>();

        foreach (FontFamily font in System.Drawing.FontFamily.Families)
        {
            fonts.Add(font.Name);
        }

        listboxfont.DataSource = fonts;

他のページのテキストを編集する前に、サンプル ラベルを編集してすべて問題ないことをテストしたいと思いました。

いくつかの調査の後、私はこのような多くのコードに出くわしました..

lblsample.Font = new Font(listboxfont.SelectedItem, 12);

私は間違っているかもしれませんが、リストボックスから選択したアイテムを使用できない理由はわかりません。これはフォントであり、それを使用してラベルを編集しますが、エラーが発生しています..

「Text_editor.font には、2 つの引数を取るコンストラクターが含まれていません。

試してみましたが、運がありません。誰でも助けることができますか?

4

3 に答える 3

1

であるからlistboxfont.SelectedItemですobject。あなたはそうにキャストする必要がありますstring

lblsample.Font = new Font((string)listboxfont.SelectedItem, 12);

または、必要に応じて:

lblsample.Font = new Font(listboxfont.SelectedItem.ToString(), 12);

それでうまくいくはずです!

更新 - 完全な例

という名前のリストボックスを追加listboxfont

という名前のラベルを追加lblsample

という名前のボタンを追加btnPreview

private void Form1_Load(object sender, EventArgs e)
{
    List<string> fonts = new List<string>();

    foreach (FontFamily font in System.Drawing.FontFamily.Families)
    {
        fonts.Add(font.Name);
    }
    listboxfont.DataSource = fonts;
}

private void btnPreview_Click(object sender, EventArgs e)
{
    lblsample.Font = new Font(listboxfont.SelectedItem.ToString(), 12);
}
于 2013-04-29T14:57:02.770 に答える