RichTextBox 关于字体修改

jackey0124 2012-04-06 12:37:47
第一次发帖求问
这段程序是通过ComboBox的选项更改来更改richBoxText 中 Text 文本的字体,但是我碰到一个问题就是只有在选中文本时,更改COMboBOX选项字体才会,不选文本更改COMBOBOX就是就不做任何更改还是默认字体



private void fontsToolStripComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string text = ((ToolStripComboBox)sender).SelectedItem.ToString();

Font newFont;
if (richTextBoxText.SelectionFont == null)
newFont = new Font(text, richTextBoxText.Font.Size);
else
newFont = new Font(text, richTextBoxText.Font.Size, richTextBoxText.SelectionFont.Style);
richTextBoxText.SelectionFont = newFont;
//richTextBoxText.Font = newFont;
richTextBoxText.Focus();
}
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2012-04-06
  • 打赏
  • 举报
回复
SelectionFont 顾名思义就是设置选中文字的字体
熙风 2012-04-06
  • 打赏
  • 举报
回复
private void fontsToolStripComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string text = ((ToolStripComboBox)sender).SelectedItem.ToString();

Font newFont;
if (richTextBoxText.SelectionFont == null)
{
newFont = new Font(text, richTextBoxText.Font.Size);
richTextBoxText.font=newFont;}
else
{
newFont = new Font(text, richTextBoxText.Font.Size, richTextBoxText.SelectionFont.Style);
richTextBoxText.SelectionFont = newFont;
}
//richTextBoxText.Font = newFont;
richTextBoxText.Focus();
}
jackey0124 2012-04-06
  • 打赏
  • 举报
回复
补充下,我希望实现就是改字体之后,之前输入的字体不变,改完后输入的是新字体关键是我对selectionFont的理解不够,不知道是不是只包括选中文本的字体

[Quote=引用楼主 的回复:]
第一次发帖求问
这段程序是通过ComboBox的选项更改来更改richBoxText 中 Text 文本的字体,但是我碰到一个问题就是只有在选中文本时,更改COMboBOX选项字体才会,不选文本更改COMBOBOX就是就不做任何更改还是默认字体


C# code

private void fontsToolStripComboBox_SelectedIndexChanged(obje……
[/Quote]
jackey0124 2012-04-06
  • 打赏
  • 举报
回复
判断是跟前面的代码有关,要不要保留原来的加粗,斜体等style

现在我遇到的主要问题是 给sellectionFont赋值 不改变当前插入点位置键入的文本字体,只能改变选定文本的字体


[Quote=引用 6 楼 的回复:]

private void fontsToolStripComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string text = ((ToolStripComboBox)sender).SelectedItem.ToString();

……
[/Quote]
tiangong789 2012-04-06
  • 打赏
  • 举报
回复
首先确定是否有ispostback
startstartsvip 2012-04-06
  • 打赏
  • 举报
回复
private void fontsToolStripComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string text = ((ToolStripComboBox)sender).SelectedItem.ToString();

Font newFont;


newFont = new Font(。。。。。。);
richTextBoxText.SelectionFont = newFont;

}


根本不用判断 SelectionFont == null
jackey0124 2012-04-06
  • 打赏
  • 举报
回复
我用了 sellectionLength == 0 来替换 SelectionFont == null ,可以代替它的功能,但是无法实现保持之前已经写过的文本的字体,会一起替换成新字体
jackey0124 2012-04-06
  • 打赏
  • 举报
回复
谢谢,程序我是明白的,但是有个问题就是我单步调试的时候看了下selectionfont 的值 在没选定任何文本的情况下也是有值的,不是空值,所以永远进不到
newFont = new Font(text, richTextBoxText.Font.Size);
richTextBoxText.font=newFont;

还有一个问题就是这个代码会把整个richtextBox的文本字体全改成newFont 如果我需要之后输入的文本字体为新字体,以前输入的维持原样该怎么写

[Quote=引用 2 楼 的回复:]

C# code
private void fontsToolStripComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
string text = ((ToolStripComboBox)sender).SelectedItem.ToString();

……
[/Quote]

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧