苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5387|回复: 6

[其他] richTextBox字体风格、大小分别设置问题(菜菜鸟,求指教)

[复制链接]
发表于 2013-7-29 19:59:24 | 显示全部楼层 |阅读模式
问题是这样的,我用两个comboBox,分别加载系统的字体风格和字体大小。
根据这两个comboBox的选择,设置richTextBox中文字的字体。
下面这段代码可以完成这个功能:
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            float fontsize = FontSize[comboBox1.SelectedIndex]; //comboBox1存放字体大小
            FontStyle fontStyle = comboBox2.Font.Style; //comboBox2中存放字体风格
            richTextBox1.Font = new Font(new FontFamily(comboBox2.Text), fontsize, fontStyle);
}

但是存在一个问题,就是每次设置完字体大小后,richTextBox中的字体大小不会立刻改变,
必须改变一次字体风格才会有效果。
我想达到的效果是,单独改变字体大小或字体风格,都能即时改变richTextBox中的文字大小或风格。
于是我修改了代码,如下:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            fontsize = FontSize[comboBox1.SelectedIndex];
            FontFamily currentFontFamily;
            currentFontFamily = richTextBox1.SelectionFont.FontFamily;
            richTextBox1.SelectionFont = new Font(currentFontFamily, fontsize);
        }
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            FontStyle fontStyle = comboBox2.Font.Style;
            richTextBox1.SelectionFont = new Font(new FontFamily(comboBox2.Text),richTextBox1.Font.Size,fontStyle);
        }

这样一来,不管是改字体还是改大小,都是毫无反应...小弟初学C#,有很多不懂的地方,望各位大神多多指教,感激不尽!



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-7-30 08:50:15 | 显示全部楼层
你看看我写的,你写的好像不太对,关键是你为什么要设置      FontStyle fontStyle = comboBox2.Font.Style;这里取comboBox2的样式干什么实在是想不通,你看看我的吧,我的是可以的
[code=csharp]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace richtexbox
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //加载
        private void Form1_Load(object sender, EventArgs e)
        {
            //如何获得系统字体列表
            System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
            foreach (System.Drawing.FontFamily family in fonts.Families)
            {
                cbbFont.Items.Add(family.Name);
            }
            for (int i = 12; i < 50; i++)
            {
                cbbSize.Items.Add(i);
            }
            if (cbbFont.Items.Count > 1)
            {
                cbbFont.SelectedIndex = 0;
            }
            if (cbbSize.Items.Count > 1)
            {
                cbbSize.SelectedIndex = 0;
            }
            this.cbbSize.SelectedIndexChanged += new System.EventHandler(this.cbbSize_SelectedIndexChanged);
            this.cbbFont.SelectedIndexChanged += new System.EventHandler(this.cbbFont_SelectedIndexChanged);
            cbbFont_SelectedIndexChanged(null, null);
        }
        //字体
        private void cbbFont_SelectedIndexChanged(object sender, EventArgs e)
        {
            float fontsize = float.Parse(cbbSize.Text.ToString());
            richTextBox1.Font = new Font(new FontFamily(cbbFont.Text), fontsize);
        }
        //大小
        private void cbbSize_SelectedIndexChanged(object sender, EventArgs e)
        {
            cbbFont_SelectedIndexChanged(null, null);
        }
    }
}
[/code]
可以打包下载
richtexbox.zip (40.21 KB, 下载次数: 7)
发表于 2013-7-30 08:50:59 | 显示全部楼层
QQ截图20130730085049.jpg
 楼主| 发表于 2013-7-30 10:14:28 | 显示全部楼层
本帖最后由 allsweets 于 2013-7-30 10:16 编辑

谢谢飞哥帮忙,我的问题今早已经解决了,richTextBox1.SelectionFont改成richTextBox1.font就可以了。。解是解决了,就是没搞定这两者之间的区别是什么?
另外,fontstyle那我是随意写的,没有什么实际意义。。。其实写个fontstyle.regular就OK了
发表于 2013-7-30 10:17:31 | 显示全部楼层
allsweets 发表于 2013-7-30 10:14
谢谢飞哥帮忙,我的问题今早已经解决了,richTextBox1.SelectionFont改成richTextBox1.font就可以了。。解 ...

那我结帖子了,呵呵
 楼主| 发表于 2013-7-30 10:56:17 | 显示全部楼层
站长苏飞 发表于 2013-7-30 10:17
那我结帖子了,呵呵

请教站长,richTextBox.Font和richTextBox.SelectionFont区别是什么呢?我找了很久,没有找到资料
发表于 2013-7-30 12:15:46 | 显示全部楼层
看字面就能想到
SelectionFont获取或设置当前选定文本或插入点的字体

        Fon   获取或设置在控件中显示文本时所使用的字体。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 05:24

© 2014-2021

快速回复 返回顶部 返回列表