目录

30C-WinForm入门到精通-字体控件FontDialog-属性方法事件实例源码

【30】C# WinForm入门到精通 ——字体控件FontDialog 【属性、方法、事件、实例、源码】

  • WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,是 C# 语言中的一个重要应用。
  • .NET 提供了大量 Windows 风格的控件和事件,可以直接拿来使用。
  • 本专栏内容按照标题序号逐渐深入的,如有不懂的基础问题,可看前面教程
  • 在介绍属性的时候,会展示一些用法、代码、实例、截图,这样看起来更清晰,免得直接看最后综合实例会有些懵

1 字体控件FontDialog——属性

字体控件 (FontDialog) 用于设置在界面上显示的字体。

当我们需要动态的更改字体属性的时候,并且需要弹出一个可以更改字体类型、字形、字体大小的弹窗时,这时候就需要使用
FontDialog

属性:
https://i-blog.csdnimg.cn/blog_migrate/a0a4a462910630ef1acf2f838c47b65c.png

1.1 AllowScriptChange

该值指示用户能否更改“脚本”组合框中指定的字符集

该属性为true时,如下
https://i-blog.csdnimg.cn/blog_migrate/cf34a405f2418e1151468b15e8c8a132.png

该属性为false时如下

https://i-blog.csdnimg.cn/blog_migrate/d48bcc6d21843ce73efddd3665e9bb6b.png

1.2 AllowSimulations

该属性为true时,字形有常规、倾斜、粗体、粗偏斜体四种类型,如下图

https://i-blog.csdnimg.cn/blog_migrate/023cceb9d479ac37146dab25017c85fd.png

1.3 Color

设置FontDialog的Color属性,代码如下;
假设设置Color属性为Red,则根据下面的代码可以将textBox1里面的文字的颜色设置为Red.

            //显示字体对话框
            DialogResult dr = fontDialog1.ShowDialog();
            //如果在对话框中单击“确认”按钮,则更改文本框中的字体颜色
            if (dr == DialogResult.OK)
            {
                textBox1.ForeColor = fontDialog1.Color;//设置颜色
            }

1.4 FixedPitchOnly

如果只能选择固定间距字体,值为 true; 反之,值为 false。 默认值是 false。

1.5 Font

该属性是打开FontDialog对话框时,首先展现出来的字体相关属性,比如,设置该属性为宋体、粗体、小一如下:
https://i-blog.csdnimg.cn/blog_migrate/48737c32f50d62e6fa67c08b4b6cf201.png
这和刚开始设置的Font属性是一致的。

        private void button1_Click(object sender, EventArgs e)
        {
            //显示字体对话框
            DialogResult dr = fontDialog1.ShowDialog();
            //如果在对话框中单击“确认”按钮,则更改文本框中的字体
            if (dr == DialogResult.OK)
            {
                textBox1.Font = fontDialog1.Font;//设置字体
            }
        }

1.6 FontMustExist

控制当选定的字体不存在时,是否报错

1.7 MaxSize 和 MinSize

MaxSize控制字体的最大尺寸(磅值),
MinSize控制字体的最小尺寸(磅值),

比如设置最大值为20,最小值为10,
https://i-blog.csdnimg.cn/blog_migrate/52167745e705657e914f4a4395fabde0.png

运行之后,打开字体对话框如下:
https://i-blog.csdnimg.cn/blog_migrate/b01dfe25e8123549b2489ae6a74eff84.png

1.8 仅限脚本

获取或设置一个值,该值指示对话框是否排除通用电子质量和符号字符集以及国标字符集

1.9 显示应用程序

控制是否显示“应用”按钮
https://i-blog.csdnimg.cn/blog_migrate/7b7b7e2e39bb651d001b4b3e99adc7b5.png
点击“应用”按钮以后会触发Apply事件

1.10 ShowColor

控制是否显示颜色选项,ShowEffects 属性为true时ShowColor才有效,如下:

https://i-blog.csdnimg.cn/blog_migrate/f5f6774995f718660f6c464d0756633a.png

        private void button2_Click(object sender, EventArgs e)
        {
            //显示字体对话框
            //如果在对话框中单击“确认”按钮,则更改文本框中的字体
            if (fontDialog1.ShowDialog() == DialogResult.OK)
            {
                label1.Font = fontDialog1.Font;//设置字体
                label1.ForeColor = fontDialog1.Color;//设置颜色
            }
        }

1.11 ShowEffects

控制显示下划线、删除线、颜色选择项
https://i-blog.csdnimg.cn/blog_migrate/9784d1a76f7786c73cd0332afa7004ff.png

1.12 ShowHelp

控制是否显示“帮助”按钮,如下图:
https://i-blog.csdnimg.cn/blog_migrate/a56aba5a4a5d157597ddc2622aafd811.png

当我们点击“帮助”按钮时会触发HelpRequest事件

2 事件

2.1 Apply

当我们点击“应用”按钮以后触发该事件

2.2 HelpRequest

当我们点击“帮助”按钮以后触发该事件

3 实例:更改文本框中 字体和颜色

往窗体添加FontDialog控件。
https://i-blog.csdnimg.cn/blog_migrate/fb921598070eb97f6f36e5938abb4a89.png

更改字体

        private void button1_Click(object sender, EventArgs e)
        {
            //显示字体对话框
            DialogResult dr = fontDialog1.ShowDialog();
            //如果在对话框中单击“确认”按钮,则更改文本框中的字体
            if (dr == DialogResult.OK)
            {
                textBox1.Font = fontDialog1.Font;//设置字体
            }
        }

https://i-blog.csdnimg.cn/blog_migrate/739b0c36925a7f34482fb4034b7c562d.png

https://i-blog.csdnimg.cn/blog_migrate/7d2e7a33d446a1edc7e80fb594d2a772.png

字体和颜色 同时更改

        private void button1_Click(object sender, EventArgs e)
        {
            //显示字体对话框
            DialogResult dr = fontDialog1.ShowDialog();
            //如果在对话框中单击“确认”按钮,则更改文本框中的字体
            if (dr == DialogResult.OK)
            {
                textBox1.Font = fontDialog1.Font;//设置字体
                textBox1.ForeColor = fontDialog1.Color;//设置颜色
            }
        }

https://i-blog.csdnimg.cn/blog_migrate/4a2b9cba84e1296a4b7680db15386686.png

完整代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WinFormTest2
{
    public partial class Form5 : Form
    {
        public Form5()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //显示字体对话框
            DialogResult dr = fontDialog1.ShowDialog();
            //如果在对话框中单击“确认”按钮,则更改文本框中的字体
            if (dr == DialogResult.OK)
            {
                textBox1.Font = fontDialog1.Font;//设置字体
                textBox1.ForeColor = fontDialog1.Color;//设置颜色
            }
        }
    }
}